-
+
type(timer)
|
@@ -597,7 +597,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test1.html b/program/test1.html
index b5a6a89..54bf8f0 100644
--- a/program/test1.html
+++ b/program/test1.html
@@ -115,8 +115,8 @@
@@ -159,8 +159,8 @@
- forunittest
- - kinds
- fortime
+ - kinds
@@ -497,7 +497,7 @@ Variables
-
+
type(timer)
|
@@ -513,7 +513,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -585,7 +585,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test10.html b/program/test10.html
index c9dcd05..a36aa32 100644
--- a/program/test10.html
+++ b/program/test10.html
@@ -115,9 +115,9 @@
@@ -160,8 +160,8 @@
- forunittest
- - kinds
- fortime
+ - kinds
@@ -522,7 +522,7 @@ Variables
-
+
integer
|
@@ -538,7 +538,7 @@ Variables
|
-
+
type(timer)
|
@@ -554,7 +554,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -632,7 +632,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test11.html b/program/test11.html
index d9d0504..d83c423 100644
--- a/program/test11.html
+++ b/program/test11.html
@@ -115,11 +115,11 @@
@@ -162,8 +162,8 @@
- forunittest
- - kinds
- fortime
+ - kinds
@@ -539,7 +539,7 @@ Variables
-
+
integer
|
@@ -555,7 +555,7 @@ Variables
|
-
+
integer
|
@@ -571,7 +571,7 @@ Variables
|
-
+
integer
|
@@ -587,7 +587,7 @@ Variables
|
-
+
type(timer)
|
@@ -603,7 +603,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -685,7 +685,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test12.html b/program/test12.html
index 3b2f092..36dd919 100644
--- a/program/test12.html
+++ b/program/test12.html
@@ -115,11 +115,11 @@
@@ -162,8 +162,8 @@
- forunittest
- - kinds
- fortime
+ - kinds
@@ -539,7 +539,7 @@ Variables
-
+
integer
|
@@ -555,7 +555,7 @@ Variables
|
-
+
integer
|
@@ -571,7 +571,7 @@ Variables
|
-
+
integer
|
@@ -587,7 +587,7 @@ Variables
|
-
+
type(timer)
|
@@ -603,7 +603,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -685,7 +685,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test13.html b/program/test13.html
index 961f779..04a33b4 100644
--- a/program/test13.html
+++ b/program/test13.html
@@ -115,8 +115,8 @@
@@ -159,8 +159,8 @@
- forunittest
- - kinds
- fortime
+ - kinds
@@ -497,7 +497,7 @@ Variables
-
+
type(timer)
|
@@ -513,7 +513,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -585,7 +585,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test14.html b/program/test14.html
index c5086ad..eacd692 100644
--- a/program/test14.html
+++ b/program/test14.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
- forunittest
- - kinds
- fortime
+ - kinds
@@ -514,7 +514,7 @@ Variables
-
+
integer
|
@@ -530,7 +530,7 @@ Variables
|
-
+
integer
|
@@ -546,7 +546,7 @@ Variables
|
-
+
type(timer)
|
@@ -562,7 +562,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -638,7 +638,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test15.html b/program/test15.html
index 782f701..9996ccd 100644
--- a/program/test15.html
+++ b/program/test15.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
- forunittest
- - kinds
- fortime
+ - kinds
@@ -514,7 +514,7 @@ Variables
-
+
integer
|
@@ -530,7 +530,7 @@ Variables
|
-
+
integer
|
@@ -546,7 +546,7 @@ Variables
|
-
+
type(timer)
|
@@ -562,7 +562,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -638,7 +638,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test16.html b/program/test16.html
index 2695388..eb2404d 100644
--- a/program/test16.html
+++ b/program/test16.html
@@ -115,7 +115,7 @@
@@ -157,8 +157,8 @@
-
-
@@ -471,7 +471,7 @@
Variables
-
+
type(timer)
|
@@ -539,7 +539,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test17.html b/program/test17.html
index 946f76c..e291a28 100644
--- a/program/test17.html
+++ b/program/test17.html
@@ -115,9 +115,9 @@
@@ -159,8 +159,8 @@
-
-
@@ -488,7 +488,7 @@
Variables
-
+
integer
|
@@ -504,7 +504,7 @@ Variables
|
-
+
integer
|
@@ -520,7 +520,7 @@ Variables
|
-
+
type(timer)
|
@@ -592,7 +592,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test18.html b/program/test18.html
index 735a0cd..d21eb59 100644
--- a/program/test18.html
+++ b/program/test18.html
@@ -115,9 +115,9 @@
@@ -159,8 +159,8 @@
-
-
@@ -488,7 +488,7 @@
Variables
-
+
integer
|
@@ -504,7 +504,7 @@ Variables
|
-
+
integer
|
@@ -520,7 +520,7 @@ Variables
|
-
+
type(timer)
|
@@ -592,7 +592,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test19.html b/program/test19.html
index 02bb700..6ef8736 100644
--- a/program/test19.html
+++ b/program/test19.html
@@ -115,8 +115,8 @@
@@ -159,8 +159,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -515,7 +515,7 @@
Variables
-
+
type(timer)
|
@@ -531,7 +531,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -605,7 +605,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test2.html b/program/test2.html
index c67d3d0..b452397 100644
--- a/program/test2.html
+++ b/program/test2.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -514,7 +514,7 @@
Variables
-
+
integer
|
@@ -530,7 +530,7 @@ Variables
|
-
+
integer
|
@@ -546,7 +546,7 @@ Variables
|
-
+
type(timer)
|
@@ -562,7 +562,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -638,7 +638,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test20.html b/program/test20.html
index cf71b37..5245735 100644
--- a/program/test20.html
+++ b/program/test20.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -532,7 +532,7 @@
Variables
-
+
integer
|
@@ -548,7 +548,7 @@ Variables
|
-
+
integer
|
@@ -564,7 +564,7 @@ Variables
|
-
+
type(timer)
|
@@ -580,7 +580,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -659,7 +659,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test21.html b/program/test21.html
index 76fcd63..03f485e 100644
--- a/program/test21.html
+++ b/program/test21.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -532,7 +532,7 @@
Variables
-
+
integer
|
@@ -548,7 +548,7 @@ Variables
|
-
+
integer
|
@@ -564,7 +564,7 @@ Variables
|
-
+
type(timer)
|
@@ -580,7 +580,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -659,7 +659,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test22.html b/program/test22.html
index 4aa6567..8bbee0f 100644
--- a/program/test22.html
+++ b/program/test22.html
@@ -115,8 +115,8 @@
@@ -160,8 +160,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -522,7 +522,7 @@
Variables
-
+
integer
|
@@ -538,7 +538,7 @@ Variables
|
-
+
type(timer)
|
@@ -632,7 +632,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test23.html b/program/test23.html
index b7365eb..6ffb8b2 100644
--- a/program/test23.html
+++ b/program/test23.html
@@ -115,11 +115,11 @@
@@ -162,8 +162,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -539,7 +539,7 @@
Variables
-
+
integer
|
@@ -555,7 +555,7 @@ Variables
|
-
+
integer
|
@@ -571,7 +571,7 @@ Variables
|
-
+
integer
|
@@ -587,7 +587,7 @@ Variables
|
-
+
type(timer)
|
@@ -603,7 +603,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -685,7 +685,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test24.html b/program/test24.html
index 6faf18e..c5923c9 100644
--- a/program/test24.html
+++ b/program/test24.html
@@ -115,11 +115,11 @@
@@ -162,8 +162,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -539,7 +539,7 @@
Variables
-
+
integer
|
@@ -555,7 +555,7 @@ Variables
|
-
+
integer
|
@@ -571,7 +571,7 @@ Variables
|
-
+
integer
|
@@ -587,7 +587,7 @@ Variables
|
-
+
type(timer)
|
@@ -603,7 +603,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -685,7 +685,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test25.html b/program/test25.html
index 65c8f3f..6de3d1a 100644
--- a/program/test25.html
+++ b/program/test25.html
@@ -115,8 +115,8 @@
@@ -159,8 +159,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -512,7 +512,7 @@
Variables
-
+
type(timer)
|
@@ -528,7 +528,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -600,7 +600,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test26.html b/program/test26.html
index 13111cf..39b28b2 100644
--- a/program/test26.html
+++ b/program/test26.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -529,7 +529,7 @@
Variables
-
+
integer
|
@@ -545,7 +545,7 @@ Variables
|
-
+
integer
|
@@ -561,7 +561,7 @@ Variables
|
-
+
type(timer)
|
@@ -577,7 +577,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -653,7 +653,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test27.html b/program/test27.html
index d44fe43..6335543 100644
--- a/program/test27.html
+++ b/program/test27.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -529,7 +529,7 @@
Variables
-
+
integer
|
@@ -545,7 +545,7 @@ Variables
|
-
+
integer
|
@@ -561,7 +561,7 @@ Variables
|
-
+
type(timer)
|
@@ -577,7 +577,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -653,7 +653,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test28.html b/program/test28.html
index 3a2a0b6..a257189 100644
--- a/program/test28.html
+++ b/program/test28.html
@@ -115,7 +115,7 @@
@@ -159,8 +159,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -512,7 +512,7 @@
Variables
-
+
type(timer)
|
@@ -600,7 +600,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test29.html b/program/test29.html
index 7f8863c..35d135a 100644
--- a/program/test29.html
+++ b/program/test29.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -529,7 +529,7 @@
Variables
-
+
integer
|
@@ -545,7 +545,7 @@ Variables
|
-
+
integer
|
@@ -561,7 +561,7 @@ Variables
|
-
+
type(timer)
|
@@ -577,7 +577,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -653,7 +653,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test3.html b/program/test3.html
index 3a8e256..1c4debd 100644
--- a/program/test3.html
+++ b/program/test3.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -514,7 +514,7 @@
Variables
-
+
integer
|
@@ -530,7 +530,7 @@ Variables
|
-
+
integer
|
@@ -546,7 +546,7 @@ Variables
|
-
+
type(timer)
|
@@ -562,7 +562,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -638,7 +638,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test30.html b/program/test30.html
index ba0ff00..e5eb830 100644
--- a/program/test30.html
+++ b/program/test30.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -529,7 +529,7 @@
Variables
-
+
integer
|
@@ -545,7 +545,7 @@ Variables
|
-
+
integer
|
@@ -561,7 +561,7 @@ Variables
|
-
+
type(timer)
|
@@ -577,7 +577,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -653,7 +653,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test4.html b/program/test4.html
index 6bb3d2b..a342451 100644
--- a/program/test4.html
+++ b/program/test4.html
@@ -115,7 +115,7 @@
@@ -157,8 +157,8 @@
-
-
@@ -471,7 +471,7 @@
Variables
-
+
type(timer)
|
@@ -539,7 +539,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test5.html b/program/test5.html
index cc280b5..dd18303 100644
--- a/program/test5.html
+++ b/program/test5.html
@@ -115,9 +115,9 @@
@@ -159,8 +159,8 @@
-
-
@@ -488,7 +488,7 @@
Variables
-
+
integer
|
@@ -504,7 +504,7 @@ Variables
|
-
+
integer
|
@@ -520,7 +520,7 @@ Variables
|
-
+
type(timer)
|
@@ -592,7 +592,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test6.html b/program/test6.html
index 1085429..04db045 100644
--- a/program/test6.html
+++ b/program/test6.html
@@ -115,9 +115,9 @@
@@ -159,8 +159,8 @@
-
-
@@ -488,7 +488,7 @@
Variables
-
+
integer
|
@@ -504,7 +504,7 @@ Variables
|
-
+
integer
|
@@ -520,7 +520,7 @@ Variables
|
-
+
type(timer)
|
@@ -592,7 +592,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test7.html b/program/test7.html
index edbcfd3..acced77 100644
--- a/program/test7.html
+++ b/program/test7.html
@@ -115,8 +115,8 @@
@@ -159,8 +159,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -515,7 +515,7 @@
Variables
-
+
type(timer)
|
@@ -531,7 +531,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -605,7 +605,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test8.html b/program/test8.html
index e8b676f..7a15792 100644
--- a/program/test8.html
+++ b/program/test8.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -532,7 +532,7 @@
Variables
-
+
integer
|
@@ -548,7 +548,7 @@ Variables
|
-
+
integer
|
@@ -564,7 +564,7 @@ Variables
|
-
+
type(timer)
|
@@ -580,7 +580,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -659,7 +659,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/program/test9.html b/program/test9.html
index 2ced87d..1260fde 100644
--- a/program/test9.html
+++ b/program/test9.html
@@ -115,10 +115,10 @@
@@ -161,8 +161,8 @@
-
- forunittest
- - kinds
- fortime
+ - kinds
-
@@ -532,7 +532,7 @@
Variables
-
+
integer
|
@@ -548,7 +548,7 @@ Variables
|
-
+
integer
|
@@ -564,7 +564,7 @@ Variables
|
-
+
type(timer)
|
@@ -580,7 +580,7 @@ Variables
|
-
+
type(unit_test)
|
@@ -659,7 +659,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/search.html b/search.html
index 9bb0b77..9642eda 100644
--- a/search.html
+++ b/search.html
@@ -101,7 +101,7 @@ Search Results
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/example1.f90.html b/sourcefile/example1.f90.html
index 04a7aa2..9893c9c 100644
--- a/sourcefile/example1.f90.html
+++ b/sourcefile/example1.f90.html
@@ -277,7 +277,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/example2.f90.html b/sourcefile/example2.f90.html
index 5a358a2..d3c2f74 100644
--- a/sourcefile/example2.f90.html
+++ b/sourcefile/example2.f90.html
@@ -281,7 +281,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/example3.f90.html b/sourcefile/example3.f90.html
index 0403450..ac994bd 100644
--- a/sourcefile/example3.f90.html
+++ b/sourcefile/example3.f90.html
@@ -277,7 +277,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/example4.f90.html b/sourcefile/example4.f90.html
index d40c7e2..45f4e13 100644
--- a/sourcefile/example4.f90.html
+++ b/sourcefile/example4.f90.html
@@ -281,7 +281,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/example5.f90.html b/sourcefile/example5.f90.html
index 6934301..1d6f560 100644
--- a/sourcefile/example5.f90.html
+++ b/sourcefile/example5.f90.html
@@ -277,7 +277,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/example6.f90.html b/sourcefile/example6.f90.html
index 7c5a50c..8b3dd62 100644
--- a/sourcefile/example6.f90.html
+++ b/sourcefile/example6.f90.html
@@ -281,7 +281,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/fortime.f90.html b/sourcefile/fortime.f90.html
index b742da2..b842438 100644
--- a/sourcefile/fortime.f90.html
+++ b/sourcefile/fortime.f90.html
@@ -1359,7 +1359,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test1.f90.html b/sourcefile/test1.f90.html
index 08e86f2..9481069 100644
--- a/sourcefile/test1.f90.html
+++ b/sourcefile/test1.f90.html
@@ -284,7 +284,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test10.f90.html b/sourcefile/test10.f90.html
index fdd6136..cda85e8 100644
--- a/sourcefile/test10.f90.html
+++ b/sourcefile/test10.f90.html
@@ -290,7 +290,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test11.f90.html b/sourcefile/test11.f90.html
index 425400f..383010e 100644
--- a/sourcefile/test11.f90.html
+++ b/sourcefile/test11.f90.html
@@ -294,7 +294,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test12.f90.html b/sourcefile/test12.f90.html
index c9be503..ace06cb 100644
--- a/sourcefile/test12.f90.html
+++ b/sourcefile/test12.f90.html
@@ -294,7 +294,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test13.f90.html b/sourcefile/test13.f90.html
index a56ba15..7f0a525 100644
--- a/sourcefile/test13.f90.html
+++ b/sourcefile/test13.f90.html
@@ -284,7 +284,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test14.f90.html b/sourcefile/test14.f90.html
index b7d9c95..b62d1ce 100644
--- a/sourcefile/test14.f90.html
+++ b/sourcefile/test14.f90.html
@@ -288,7 +288,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test15.f90.html b/sourcefile/test15.f90.html
index 8045cf6..e6c7126 100644
--- a/sourcefile/test15.f90.html
+++ b/sourcefile/test15.f90.html
@@ -288,7 +288,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test16.f90.html b/sourcefile/test16.f90.html
index 66c71c9..bc458a3 100644
--- a/sourcefile/test16.f90.html
+++ b/sourcefile/test16.f90.html
@@ -280,7 +280,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test17.f90.html b/sourcefile/test17.f90.html
index 7f53430..1f91021 100644
--- a/sourcefile/test17.f90.html
+++ b/sourcefile/test17.f90.html
@@ -284,7 +284,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test18.f90.html b/sourcefile/test18.f90.html
index 37d3ae9..b2445d7 100644
--- a/sourcefile/test18.f90.html
+++ b/sourcefile/test18.f90.html
@@ -284,7 +284,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test19.f90.html b/sourcefile/test19.f90.html
index 61a0f7c..7e41924 100644
--- a/sourcefile/test19.f90.html
+++ b/sourcefile/test19.f90.html
@@ -286,7 +286,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test2.f90.html b/sourcefile/test2.f90.html
index 8f2fc81..cda2d8a 100644
--- a/sourcefile/test2.f90.html
+++ b/sourcefile/test2.f90.html
@@ -288,7 +288,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test20.f90.html b/sourcefile/test20.f90.html
index d7e8b70..f322f21 100644
--- a/sourcefile/test20.f90.html
+++ b/sourcefile/test20.f90.html
@@ -291,7 +291,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test21.f90.html b/sourcefile/test21.f90.html
index 7a820cd..da9d7b5 100644
--- a/sourcefile/test21.f90.html
+++ b/sourcefile/test21.f90.html
@@ -291,7 +291,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test22.f90.html b/sourcefile/test22.f90.html
index 6981597..306b954 100644
--- a/sourcefile/test22.f90.html
+++ b/sourcefile/test22.f90.html
@@ -290,7 +290,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test23.f90.html b/sourcefile/test23.f90.html
index 379761b..c6aae39 100644
--- a/sourcefile/test23.f90.html
+++ b/sourcefile/test23.f90.html
@@ -294,7 +294,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test24.f90.html b/sourcefile/test24.f90.html
index dc80b63..bac101d 100644
--- a/sourcefile/test24.f90.html
+++ b/sourcefile/test24.f90.html
@@ -294,7 +294,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test25.f90.html b/sourcefile/test25.f90.html
index 2a567e8..cf3d232 100644
--- a/sourcefile/test25.f90.html
+++ b/sourcefile/test25.f90.html
@@ -284,7 +284,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test26.f90.html b/sourcefile/test26.f90.html
index 8e42ab1..da80244 100644
--- a/sourcefile/test26.f90.html
+++ b/sourcefile/test26.f90.html
@@ -288,7 +288,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test27.f90.html b/sourcefile/test27.f90.html
index 5bfb3ec..e4b062a 100644
--- a/sourcefile/test27.f90.html
+++ b/sourcefile/test27.f90.html
@@ -288,7 +288,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test28.f90.html b/sourcefile/test28.f90.html
index d22046b..5189631 100644
--- a/sourcefile/test28.f90.html
+++ b/sourcefile/test28.f90.html
@@ -284,7 +284,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test29.f90.html b/sourcefile/test29.f90.html
index 99ba4da..4ef0b9c 100644
--- a/sourcefile/test29.f90.html
+++ b/sourcefile/test29.f90.html
@@ -288,7 +288,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test3.f90.html b/sourcefile/test3.f90.html
index 9b5304a..8598ae3 100644
--- a/sourcefile/test3.f90.html
+++ b/sourcefile/test3.f90.html
@@ -288,7 +288,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test30.f90.html b/sourcefile/test30.f90.html
index 0344f09..559faad 100644
--- a/sourcefile/test30.f90.html
+++ b/sourcefile/test30.f90.html
@@ -288,7 +288,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test4.f90.html b/sourcefile/test4.f90.html
index 556d13e..038eacf 100644
--- a/sourcefile/test4.f90.html
+++ b/sourcefile/test4.f90.html
@@ -280,7 +280,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test5.f90.html b/sourcefile/test5.f90.html
index ff2c658..85aeb97 100644
--- a/sourcefile/test5.f90.html
+++ b/sourcefile/test5.f90.html
@@ -284,7 +284,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test6.f90.html b/sourcefile/test6.f90.html
index a51c3a1..a19db7a 100644
--- a/sourcefile/test6.f90.html
+++ b/sourcefile/test6.f90.html
@@ -284,7 +284,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test7.f90.html b/sourcefile/test7.f90.html
index 181fddf..c7909ad 100644
--- a/sourcefile/test7.f90.html
+++ b/sourcefile/test7.f90.html
@@ -286,7 +286,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test8.f90.html b/sourcefile/test8.f90.html
index 7d5d7f9..4ebccc8 100644
--- a/sourcefile/test8.f90.html
+++ b/sourcefile/test8.f90.html
@@ -291,7 +291,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/sourcefile/test9.f90.html b/sourcefile/test9.f90.html
index 3ead263..b8e37e0 100644
--- a/sourcefile/test9.f90.html
+++ b/sourcefile/test9.f90.html
@@ -291,7 +291,7 @@ Source Code
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
diff --git a/tipuesearch/tipuesearch_content.js b/tipuesearch/tipuesearch_content.js
index 8955f4b..f2f95a2 100644
--- a/tipuesearch/tipuesearch_content.js
+++ b/tipuesearch/tipuesearch_content.js
@@ -1 +1 @@
-var tipuesearch = {"pages":[{"title":" ForTime ","text":"ForTime ForTime : A Fortran library for measuring elapsed time, DATE_AND_TIME time, CPU time, OMP time and MPI time. fpm dependency If you want to use ForTime as a dependency in your own fpm project,\nyou can easily include it by adding the following line to your fpm.toml file: [dependencies] fortime = { git = \"https://github.com/gha3mi/fortime.git\" } Usage Measuring elapsed time (system_clock) use fortime type ( timer ) :: t call t % timer_start () ! Your code or section to be timed call t % timer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % timer_write ( file_name ) ! Optionally, write the result to a file Measuring elapsed time (date_and_time) use fortime type ( timer ) :: t call t % dtimer_start () ! Your code or section to be timed call t % dtimer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % dtimer_write ( file_name ) ! Optionally, write the result to a file Measuring CPU time (cpu_time) use fortime type ( timer ) :: t call t % ctimer_start () ! Your code or section to be timed call t % ctimer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % ctimer_write ( file_name ) ! Optionally, write the result to a file Measuring OpenMP time (omp_get_wtime) use fortime type ( timer ) :: t call t % otimer_start () ! Your code or section to be timed call t % otimer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % otimer_write ( file_name ) ! Optionally, write the result to a file Note: Compile with the -DUSE_OMP option when using the OpenMP timer. Measuring MPI time (mpi_wtime) use fortime type ( timer ) :: t call t % mtimer_start () ! Your code or section to be timed call t % mtimer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % mtimer_write ( file_name ) ! Optionally, write the result to a file Note: Compile with the -DUSE_MPI option when using the MPI timer. To measure elapsed time within a pure procedure, use ForDebug . Running Examples and Tests Clone the Repository First, clone the ForTime repository from GitHub and navigate to the project directory: git clone https://github.com/gha3mi/fortime.git cd fortime Running Examples To run a specific example from the example directory using your preferred Fortran compiler, use the following command: fpm run --example --compiler Replace with the name of the example file (excluding the .f90 extension) and with the name of your Fortran compiler (e.g., ifx , ifort , gfortran , nvfortran ). Running Tests To execute tests, use the following command with your chosen compiler: fpm test --compiler Replace with the name of your Fortran compiler. Documentation The most up-to-date API documentation for the master branch is available here .\nTo generate the API documentation for ForTime using ford run the following\ncommand: ford ford.yml Contributing Contributions to ForTime are welcome! If you find any issues or would like to suggest improvements, please open an issue. Developer Info Seyed Ali Ghasemi","tags":"home","loc":"index.html"},{"title":"timer – ForTime ","text":"type, public :: timer Components Type Visibility Attributes Name Initial real(kind=rk), public :: cpu_time real(kind=rk), public :: elapsed_dtime real(kind=rk), public :: elapsed_time real(kind=rk), public :: mpi_time real(kind=rk), public :: omp_time integer, private :: clock_elapsed integer, private :: clock_end integer, private :: clock_rate integer, private :: clock_start real(kind=rk), private :: cpu_elapsed real(kind=rk), private :: cpu_end real(kind=rk), private :: cpu_start real(kind=rk), private :: mpi_elapsed real(kind=rk), private :: mpi_end real(kind=rk), private :: mpi_start real(kind=rk), private :: omp_elapsed real(kind=rk), private :: omp_end real(kind=rk), private :: omp_start integer, private, dimension(8) :: values_elapsed integer, private, dimension(8) :: values_end integer, private, dimension(8) :: values_start Type-Bound Procedures procedure, public :: ctimer_start private impure subroutine ctimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current CPU time value.\nThis value is used to calculate the CPU time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: ctimer_stop private impure subroutine ctimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the CPU time.\nOptionally, it can print a message along with the CPU time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: ctimer_write private impure subroutine ctimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the CPU time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name procedure, public :: dtimer_start private impure subroutine dtimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: dtimer_stop private impure subroutine dtimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: dtimer_write private impure subroutine dtimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the elapsed time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name procedure, public :: mtimer_start private impure subroutine mtimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current MPI time value.\nThis value is used to calculate the MPI time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: mtimer_stop private impure subroutine mtimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the MPI time.\nOptionally, it can print a message along with the MPI time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: mtimer_write private impure subroutine mtimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the MPI time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name procedure, public :: otimer_start private impure subroutine otimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current OMP time value.\nThis value is used to calculate the OMP time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: otimer_stop private impure subroutine otimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the OMP time.\nOptionally, it can print a message along with the OMP time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: otimer_write private impure subroutine otimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the OMP time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name procedure, public :: timer_start private impure subroutine timer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: timer_stop private impure subroutine timer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: timer_write private impure subroutine timer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the elapsed time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name","tags":"","loc":"type/timer.html"},{"title":"to_seconds – ForTime","text":"private pure function to_seconds(values) result(seconds) Arguments Type Intent Optional Attributes Name integer, intent(in), dimension(8) :: values Return Value real(kind=rk) Called by proc~~to_seconds~~CalledByGraph proc~to_seconds to_seconds proc~dtimer_stop timer%dtimer_stop proc~dtimer_stop->proc~to_seconds program~example5 example5 program~example5->proc~dtimer_stop program~example6 example6 program~example6->proc~dtimer_stop program~test25 test25 program~test25->proc~dtimer_stop program~test26 test26 program~test26->proc~dtimer_stop program~test27 test27 program~test27->proc~dtimer_stop program~test28 test28 program~test28->proc~dtimer_stop program~test29 test29 program~test29->proc~dtimer_stop program~test30 test30 program~test30->proc~dtimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code pure function to_seconds ( values ) result ( seconds ) integer , dimension ( 8 ), intent ( in ) :: values real ( rk ) :: seconds seconds = real ( values ( 3 ), rk ) * 2 4.0_rk * 6 0.0_rk * 6 0.0_rk + & real ( values ( 5 ), rk ) * 6 0.0_rk * 6 0.0_rk + & real ( values ( 6 ), rk ) * 6 0.0_rk + & real ( values ( 7 ), rk ) + & real ( values ( 8 ), rk ) / 100 0.0_rk end function to_seconds","tags":"","loc":"proc/to_seconds.html"},{"title":"ctimer_start – ForTime","text":"private impure subroutine ctimer_start(this) Starts the timer by recording the current CPU time value.\nThis value is used to calculate the CPU time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Called by proc~~ctimer_start~~CalledByGraph proc~ctimer_start timer%ctimer_start program~example3 example3 program~example3->proc~ctimer_start program~example4 example4 program~example4->proc~ctimer_start program~test16 test16 program~test16->proc~ctimer_start program~test17 test17 program~test17->proc~ctimer_start program~test18 test18 program~test18->proc~ctimer_start program~test4 test4 program~test4->proc~ctimer_start program~test5 test5 program~test5->proc~ctimer_start program~test6 test6 program~test6->proc~ctimer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine ctimer_start ( this ) class ( timer ), intent ( inout ) :: this ! Start the timer call cpu_time ( this % cpu_start ) end subroutine ctimer_start","tags":"","loc":"proc/ctimer_start.html"},{"title":"ctimer_stop – ForTime","text":"private impure subroutine ctimer_stop(this, nloops, message, print, color) Stops the timer and calculates the CPU time.\nOptionally, it can print a message along with the CPU time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~ctimer_stop~~CallsGraph proc~ctimer_stop timer%ctimer_stop proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~ctimer_stop~~CalledByGraph proc~ctimer_stop timer%ctimer_stop program~example3 example3 program~example3->proc~ctimer_stop program~example4 example4 program~example4->proc~ctimer_stop program~test16 test16 program~test16->proc~ctimer_stop program~test17 test17 program~test17->proc~ctimer_stop program~test18 test18 program~test18->proc~ctimer_stop program~test4 test4 program~test4->proc~ctimer_stop program~test5 test5 program~test5->proc~ctimer_stop program~test6 test6 program~test6->proc~ctimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine ctimer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer call cpu_time ( this % cpu_end ) ! Calculate the elapsed CPU time this % cpu_elapsed = this % cpu_end - this % cpu_start ! Convert CPU time to seconds if (. not . present ( nloops )) this % cpu_time = this % cpu_elapsed if ( present ( nloops )) this % cpu_time = this % cpu_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"CPU time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % cpu_time , msg , color ) else call print_time ( this % cpu_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine ctimer_stop","tags":"","loc":"proc/ctimer_stop.html"},{"title":"ctimer_write – ForTime","text":"private impure subroutine ctimer_write(this, file_name) Writes the CPU time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~ctimer_write~~CalledByGraph proc~ctimer_write timer%ctimer_write program~example4 example4 program~example4->proc~ctimer_write program~test17 test17 program~test17->proc~ctimer_write program~test18 test18 program~test18->proc~ctimer_write program~test5 test5 program~test5->proc~ctimer_write program~test6 test6 program~test6->proc~ctimer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine ctimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the CPU time to the file write ( nunit , '(g0)' ) this % cpu_time ! Close the file close ( nunit ) end subroutine ctimer_write","tags":"","loc":"proc/ctimer_write.html"},{"title":"dtimer_start – ForTime","text":"private impure subroutine dtimer_start(this) Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Called by proc~~dtimer_start~~CalledByGraph proc~dtimer_start timer%dtimer_start program~example5 example5 program~example5->proc~dtimer_start program~example6 example6 program~example6->proc~dtimer_start program~test25 test25 program~test25->proc~dtimer_start program~test26 test26 program~test26->proc~dtimer_start program~test27 test27 program~test27->proc~dtimer_start program~test28 test28 program~test28->proc~dtimer_start program~test29 test29 program~test29->proc~dtimer_start program~test30 test30 program~test30->proc~dtimer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine dtimer_start ( this ) class ( timer ), intent ( inout ) :: this ! Start the timer call date_and_time ( values = this % values_start ) end subroutine dtimer_start","tags":"","loc":"proc/dtimer_start.html"},{"title":"dtimer_stop – ForTime","text":"private impure subroutine dtimer_stop(this, nloops, message, print, color) Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~dtimer_stop~~CallsGraph proc~dtimer_stop timer%dtimer_stop proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~dtimer_stop~~CalledByGraph proc~dtimer_stop timer%dtimer_stop program~example5 example5 program~example5->proc~dtimer_stop program~example6 example6 program~example6->proc~dtimer_stop program~test25 test25 program~test25->proc~dtimer_stop program~test26 test26 program~test26->proc~dtimer_stop program~test27 test27 program~test27->proc~dtimer_stop program~test28 test28 program~test28->proc~dtimer_stop program~test29 test29 program~test29->proc~dtimer_stop program~test30 test30 program~test30->proc~dtimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine dtimer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print real ( rk ) :: values_elapsed_sec character ( * ), intent ( in ), optional :: color ! Stop the timer call date_and_time ( values = this % values_end ) ! Calculate the elapsed processor ticks this % values_elapsed = this % values_end - this % values_start ! Convert processor ticks to seconds if (. not . present ( nloops )) & this % elapsed_dtime = to_seconds ( this % values_elapsed ) if ( present ( nloops )) & this % elapsed_dtime = to_seconds ( this % values_elapsed ) / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"Elapsed time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % elapsed_dtime , msg , color ) else call print_time ( this % elapsed_dtime , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine dtimer_stop","tags":"","loc":"proc/dtimer_stop.html"},{"title":"dtimer_write – ForTime","text":"private impure subroutine dtimer_write(this, file_name) Writes the elapsed time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~dtimer_write~~CalledByGraph proc~dtimer_write timer%dtimer_write program~example6 example6 program~example6->proc~dtimer_write program~test26 test26 program~test26->proc~dtimer_write program~test27 test27 program~test27->proc~dtimer_write program~test29 test29 program~test29->proc~dtimer_write program~test30 test30 program~test30->proc~dtimer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine dtimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the elapsed time to the file write ( nunit , '(g0)' ) this % elapsed_dtime ! Close the file close ( nunit ) end subroutine dtimer_write","tags":"","loc":"proc/dtimer_write.html"},{"title":"mtimer_start – ForTime","text":"private impure subroutine mtimer_start(this) Starts the timer by recording the current MPI time value.\nThis value is used to calculate the MPI time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Called by proc~~mtimer_start~~CalledByGraph proc~mtimer_start timer%mtimer_start program~test10 test10 program~test10->proc~mtimer_start program~test11 test11 program~test11->proc~mtimer_start program~test12 test12 program~test12->proc~mtimer_start program~test22 test22 program~test22->proc~mtimer_start program~test23 test23 program~test23->proc~mtimer_start program~test24 test24 program~test24->proc~mtimer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine mtimer_start ( this ) ! include 'mpif.h' class ( timer ), intent ( inout ) :: this interface function mpi_wtime () import rk real ( rk ) :: mpi_wtime end function mpi_wtime end interface ! Start the timer this % mpi_start = mpi_wtime () end subroutine mtimer_start","tags":"","loc":"proc/mtimer_start.html"},{"title":"mtimer_stop – ForTime","text":"private impure subroutine mtimer_stop(this, nloops, message, print, color) Stops the timer and calculates the MPI time.\nOptionally, it can print a message along with the MPI time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~mtimer_stop~~CallsGraph proc~mtimer_stop timer%mtimer_stop proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~mtimer_stop~~CalledByGraph proc~mtimer_stop timer%mtimer_stop program~test10 test10 program~test10->proc~mtimer_stop program~test11 test11 program~test11->proc~mtimer_stop program~test12 test12 program~test12->proc~mtimer_stop program~test22 test22 program~test22->proc~mtimer_stop program~test23 test23 program~test23->proc~mtimer_stop program~test24 test24 program~test24->proc~mtimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine mtimer_stop ( this , nloops , message , print , color ) ! include 'mpif.h' class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color interface function mpi_wtime () import rk real ( rk ) :: mpi_wtime end function mpi_wtime end interface ! Stop the timer this % mpi_end = mpi_wtime () ! Calculate the elapsed MPI time this % mpi_elapsed = this % mpi_end - this % mpi_start ! Convert MPI time to seconds if (. not . present ( nloops )) this % mpi_time = this % mpi_elapsed if ( present ( nloops )) this % mpi_time = this % mpi_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"MPI time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % mpi_time , msg , color ) else call print_time ( this % mpi_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine mtimer_stop","tags":"","loc":"proc/mtimer_stop.html"},{"title":"mtimer_write – ForTime","text":"private impure subroutine mtimer_write(this, file_name) Writes the MPI time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~mtimer_write~~CalledByGraph proc~mtimer_write timer%mtimer_write program~test11 test11 program~test11->proc~mtimer_write program~test12 test12 program~test12->proc~mtimer_write program~test23 test23 program~test23->proc~mtimer_write program~test24 test24 program~test24->proc~mtimer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine mtimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the MPI time to the file write ( nunit , '(g0)' ) this % mpi_time ! Close the file close ( nunit ) end subroutine mtimer_write","tags":"","loc":"proc/mtimer_write.html"},{"title":"otimer_start – ForTime","text":"private impure subroutine otimer_start(this) Uses omp_lib proc~~otimer_start~~UsesGraph proc~otimer_start timer%otimer_start omp_lib omp_lib proc~otimer_start->omp_lib Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Starts the timer by recording the current OMP time value.\nThis value is used to calculate the OMP time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Calls proc~~otimer_start~~CallsGraph proc~otimer_start timer%otimer_start omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~otimer_start~~CalledByGraph proc~otimer_start timer%otimer_start program~test19 test19 program~test19->proc~otimer_start program~test20 test20 program~test20->proc~otimer_start program~test21 test21 program~test21->proc~otimer_start program~test7 test7 program~test7->proc~otimer_start program~test8 test8 program~test8->proc~otimer_start program~test9 test9 program~test9->proc~otimer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine otimer_start ( this ) use omp_lib class ( timer ), intent ( inout ) :: this ! Start the timer this % omp_start = omp_get_wtime () end subroutine otimer_start","tags":"","loc":"proc/otimer_start.html"},{"title":"otimer_stop – ForTime","text":"private impure subroutine otimer_stop(this, nloops, message, print, color) Uses omp_lib proc~~otimer_stop~~UsesGraph proc~otimer_stop timer%otimer_stop omp_lib omp_lib proc~otimer_stop->omp_lib Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Stops the timer and calculates the OMP time.\nOptionally, it can print a message along with the OMP time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~otimer_stop~~CallsGraph proc~otimer_stop timer%otimer_stop omp_get_wtime omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~otimer_stop~~CalledByGraph proc~otimer_stop timer%otimer_stop program~test19 test19 program~test19->proc~otimer_stop program~test20 test20 program~test20->proc~otimer_stop program~test21 test21 program~test21->proc~otimer_stop program~test7 test7 program~test7->proc~otimer_stop program~test8 test8 program~test8->proc~otimer_stop program~test9 test9 program~test9->proc~otimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine otimer_stop ( this , nloops , message , print , color ) use omp_lib class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer this % omp_end = omp_get_wtime () ! Calculate the elapsed OMP time this % omp_elapsed = this % omp_end - this % omp_start ! Convert OMP time to seconds if (. not . present ( nloops )) this % omp_time = this % omp_elapsed if ( present ( nloops )) this % omp_time = this % omp_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"OMP time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % omp_time , msg , color ) else call print_time ( this % omp_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine otimer_stop","tags":"","loc":"proc/otimer_stop.html"},{"title":"otimer_write – ForTime","text":"private impure subroutine otimer_write(this, file_name) Uses omp_lib proc~~otimer_write~~UsesGraph proc~otimer_write timer%otimer_write omp_lib omp_lib proc~otimer_write->omp_lib Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Writes the OMP time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~otimer_write~~CalledByGraph proc~otimer_write timer%otimer_write program~test20 test20 program~test20->proc~otimer_write program~test21 test21 program~test21->proc~otimer_write program~test8 test8 program~test8->proc~otimer_write program~test9 test9 program~test9->proc~otimer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine otimer_write ( this , file_name ) use omp_lib class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the OMP time to the file write ( nunit , '(g0)' ) this % omp_time ! Close the file close ( nunit ) end subroutine otimer_write","tags":"","loc":"proc/otimer_write.html"},{"title":"print_time – ForTime","text":"private impure subroutine print_time(time, message, color) Uses face proc~~print_time~~UsesGraph proc~print_time print_time face face proc~print_time->face Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Arguments Type Intent Optional Attributes Name real(kind=rk), intent(in) :: time character(len=*), intent(in) :: message character(len=*), intent(in), optional :: color Calls proc~~print_time~~CallsGraph proc~print_time print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~print_time~~CalledByGraph proc~print_time print_time proc~ctimer_stop timer%ctimer_stop proc~ctimer_stop->proc~print_time proc~dtimer_stop timer%dtimer_stop proc~dtimer_stop->proc~print_time proc~mtimer_stop timer%mtimer_stop proc~mtimer_stop->proc~print_time proc~otimer_stop timer%otimer_stop proc~otimer_stop->proc~print_time proc~timer_stop timer%timer_stop proc~timer_stop->proc~print_time program~example1 example1 program~example1->proc~timer_stop program~example2 example2 program~example2->proc~timer_stop program~example3 example3 program~example3->proc~ctimer_stop program~example4 example4 program~example4->proc~ctimer_stop program~example5 example5 program~example5->proc~dtimer_stop program~example6 example6 program~example6->proc~dtimer_stop program~test1 test1 program~test1->proc~timer_stop program~test10 test10 program~test10->proc~mtimer_stop program~test11 test11 program~test11->proc~mtimer_stop program~test12 test12 program~test12->proc~mtimer_stop program~test13 test13 program~test13->proc~timer_stop program~test14 test14 program~test14->proc~timer_stop program~test15 test15 program~test15->proc~timer_stop program~test16 test16 program~test16->proc~ctimer_stop program~test17 test17 program~test17->proc~ctimer_stop program~test18 test18 program~test18->proc~ctimer_stop program~test19 test19 program~test19->proc~otimer_stop program~test2 test2 program~test2->proc~timer_stop program~test20 test20 program~test20->proc~otimer_stop program~test21 test21 program~test21->proc~otimer_stop program~test22 test22 program~test22->proc~mtimer_stop program~test23 test23 program~test23->proc~mtimer_stop program~test24 test24 program~test24->proc~mtimer_stop program~test25 test25 program~test25->proc~dtimer_stop program~test26 test26 program~test26->proc~dtimer_stop program~test27 test27 program~test27->proc~dtimer_stop program~test28 test28 program~test28->proc~dtimer_stop program~test29 test29 program~test29->proc~dtimer_stop program~test3 test3 program~test3->proc~timer_stop program~test30 test30 program~test30->proc~dtimer_stop program~test4 test4 program~test4->proc~ctimer_stop program~test5 test5 program~test5->proc~ctimer_stop program~test6 test6 program~test6->proc~ctimer_stop program~test7 test7 program~test7->proc~otimer_stop program~test8 test8 program~test8->proc~otimer_stop program~test9 test9 program~test9->proc~otimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine print_time ( time , message , color ) use face real ( rk ), intent ( in ) :: time character ( * ), intent ( in ) :: message character ( * ), intent ( in ), optional :: color if ( present ( color )) then print '(A, F16.9, A)' , colorize ( trim ( message ), color_fg = trim ( color )), time , colorize ( \" [s]\" , color_fg = trim ( color )) else print '(A, F16.9, A)' , colorize ( trim ( message ), color_fg = 'blue' ), time , colorize ( \" [s]\" , color_fg = 'blue' ) end if end subroutine print_time","tags":"","loc":"proc/print_time.html"},{"title":"timer_start – ForTime","text":"private impure subroutine timer_start(this) Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Called by proc~~timer_start~~CalledByGraph proc~timer_start timer%timer_start program~example1 example1 program~example1->proc~timer_start program~example2 example2 program~example2->proc~timer_start program~test1 test1 program~test1->proc~timer_start program~test13 test13 program~test13->proc~timer_start program~test14 test14 program~test14->proc~timer_start program~test15 test15 program~test15->proc~timer_start program~test2 test2 program~test2->proc~timer_start program~test3 test3 program~test3->proc~timer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine timer_start ( this ) class ( timer ), intent ( inout ) :: this ! Get the processor clock rate call system_clock ( count_rate = this % clock_rate ) ! Start the timer call system_clock ( count = this % clock_start ) end subroutine timer_start","tags":"","loc":"proc/timer_start.html"},{"title":"timer_stop – ForTime","text":"private impure subroutine timer_stop(this, nloops, message, print, color) Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~timer_stop~~CallsGraph proc~timer_stop timer%timer_stop proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~timer_stop~~CalledByGraph proc~timer_stop timer%timer_stop program~example1 example1 program~example1->proc~timer_stop program~example2 example2 program~example2->proc~timer_stop program~test1 test1 program~test1->proc~timer_stop program~test13 test13 program~test13->proc~timer_stop program~test14 test14 program~test14->proc~timer_stop program~test15 test15 program~test15->proc~timer_stop program~test2 test2 program~test2->proc~timer_stop program~test3 test3 program~test3->proc~timer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine timer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer call system_clock ( count = this % clock_end ) ! Calculate the elapsed processor ticks this % clock_elapsed = this % clock_end - this % clock_start ! Convert processor ticks to seconds if (. not . present ( nloops )) & this % elapsed_time = real ( this % clock_elapsed , kind = rk ) / real ( this % clock_rate , kind = rk ) if ( present ( nloops )) & this % elapsed_time = real ( this % clock_elapsed , kind = rk ) / real ( this % clock_rate , kind = rk ) / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"Elapsed time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % elapsed_time , msg , color ) else call print_time ( this % elapsed_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine timer_stop","tags":"","loc":"proc/timer_stop.html"},{"title":"timer_write – ForTime","text":"private impure subroutine timer_write(this, file_name) Writes the elapsed time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~timer_write~~CalledByGraph proc~timer_write timer%timer_write program~example2 example2 program~example2->proc~timer_write program~test14 test14 program~test14->proc~timer_write program~test15 test15 program~test15->proc~timer_write program~test2 test2 program~test2->proc~timer_write program~test3 test3 program~test3->proc~timer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine timer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the elapsed time to the file write ( nunit , '(g0)' ) this % elapsed_time ! Close the file close ( nunit ) end subroutine timer_write","tags":"","loc":"proc/timer_write.html"},{"title":"fortime – ForTime","text":"This module provides a timer object for measuring elapsed time.\nIt includes procedures for starting and stopping the timer, as well\nas calculating and printing the elapsed time in seconds. Uses kinds module~~fortime~~UsesGraph module~fortime fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Used by module~~fortime~~UsedByGraph module~fortime fortime program~example1 example1 program~example1->module~fortime program~example2 example2 program~example2->module~fortime program~example3 example3 program~example3->module~fortime program~example4 example4 program~example4->module~fortime program~example5 example5 program~example5->module~fortime program~example6 example6 program~example6->module~fortime program~test1 test1 program~test1->module~fortime program~test10 test10 program~test10->module~fortime program~test11 test11 program~test11->module~fortime program~test12 test12 program~test12->module~fortime program~test13 test13 program~test13->module~fortime program~test14 test14 program~test14->module~fortime program~test15 test15 program~test15->module~fortime program~test16 test16 program~test16->module~fortime program~test17 test17 program~test17->module~fortime program~test18 test18 program~test18->module~fortime program~test19 test19 program~test19->module~fortime program~test2 test2 program~test2->module~fortime program~test20 test20 program~test20->module~fortime program~test21 test21 program~test21->module~fortime program~test22 test22 program~test22->module~fortime program~test23 test23 program~test23->module~fortime program~test24 test24 program~test24->module~fortime program~test25 test25 program~test25->module~fortime program~test26 test26 program~test26->module~fortime program~test27 test27 program~test27->module~fortime program~test28 test28 program~test28->module~fortime program~test29 test29 program~test29->module~fortime program~test3 test3 program~test3->module~fortime program~test30 test30 program~test30->module~fortime program~test4 test4 program~test4->module~fortime program~test5 test5 program~test5->module~fortime program~test6 test6 program~test6->module~fortime program~test7 test7 program~test7->module~fortime program~test8 test8 program~test8->module~fortime program~test9 test9 program~test9->module~fortime Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Derived Types type, public :: timer Components Type Visibility Attributes Name Initial real(kind=rk), public :: cpu_time real(kind=rk), public :: elapsed_dtime real(kind=rk), public :: elapsed_time real(kind=rk), public :: mpi_time real(kind=rk), public :: omp_time integer, private :: clock_elapsed integer, private :: clock_end integer, private :: clock_rate integer, private :: clock_start real(kind=rk), private :: cpu_elapsed real(kind=rk), private :: cpu_end real(kind=rk), private :: cpu_start real(kind=rk), private :: mpi_elapsed real(kind=rk), private :: mpi_end real(kind=rk), private :: mpi_start real(kind=rk), private :: omp_elapsed real(kind=rk), private :: omp_end real(kind=rk), private :: omp_start integer, private, dimension(8) :: values_elapsed integer, private, dimension(8) :: values_end integer, private, dimension(8) :: values_start Type-Bound Procedures procedure, public :: ctimer_start procedure, public :: ctimer_stop procedure, public :: ctimer_write procedure, public :: dtimer_start procedure, public :: dtimer_stop procedure, public :: dtimer_write procedure, public :: mtimer_start procedure, public :: mtimer_stop procedure, public :: mtimer_write procedure, public :: otimer_start procedure, public :: otimer_stop procedure, public :: otimer_write procedure, public :: timer_start procedure, public :: timer_stop procedure, public :: timer_write Functions private pure function to_seconds (values) result(seconds) Author Seyed Ali Ghasemi License BSD 3-Clause Arguments Type Intent Optional Attributes Name integer, intent(in), dimension(8) :: values Return Value real(kind=rk) Subroutines private impure subroutine ctimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current CPU time value.\nThis value is used to calculate the CPU time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine ctimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the CPU time.\nOptionally, it can print a message along with the CPU time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine ctimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the CPU time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name private impure subroutine dtimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine dtimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine dtimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the elapsed time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name private impure subroutine mtimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current MPI time value.\nThis value is used to calculate the MPI time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine mtimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the MPI time.\nOptionally, it can print a message along with the MPI time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine mtimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the MPI time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name private impure subroutine otimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current OMP time value.\nThis value is used to calculate the OMP time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine otimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the OMP time.\nOptionally, it can print a message along with the OMP time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine otimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the OMP time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name private impure subroutine print_time (time, message, color) Author Seyed Ali Ghasemi License BSD 3-Clause Arguments Type Intent Optional Attributes Name real(kind=rk), intent(in) :: time character(len=*), intent(in) :: message character(len=*), intent(in), optional :: color private impure subroutine timer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine timer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine timer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the elapsed time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name","tags":"","loc":"module/fortime.html"},{"title":"test30 – ForTime","text":"Uses forunittest kinds fortime program~~test30~~UsesGraph program~test30 test30 forunittest forunittest program~test30->forunittest kinds kinds program~test30->kinds module~fortime fortime program~test30->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test30~~CallsGraph program~test30 test30 check check program~test30->check proc~dtimer_start timer%dtimer_start program~test30->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test30->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~test30->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test30 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( message = 'Elapsed time:' , print = . false .) call t % dtimer_write ( 'test/test30_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test30' ) end program test30","tags":"","loc":"program/test30.html"},{"title":"test10 – ForTime","text":"Uses forunittest kinds fortime program~~test10~~UsesGraph program~test10 test10 forunittest forunittest program~test10->forunittest kinds kinds program~test10->kinds module~fortime fortime program~test10->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test10~~CallsGraph program~test10 test10 check check program~test10->check mpi_finalize mpi_finalize program~test10->mpi_finalize mpi_init mpi_init program~test10->mpi_init proc~mtimer_start timer%mtimer_start program~test10->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test10->proc~mtimer_stop proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr type( timer ) :: t type(unit_test) :: ut Source Code program test10 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: ierr #if defined(USE_MPI) ! MPI time call mpi_init ( ierr ) call t % mtimer_start () call sleep ( 1 ) ! Perform operations here call t % mtimer_stop () call mpi_finalize ( ierr ) call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test10' ) #endif end program test10","tags":"","loc":"program/test10.html"},{"title":"test27 – ForTime","text":"Uses forunittest kinds fortime program~~test27~~UsesGraph program~test27 test27 forunittest forunittest program~test27->forunittest kinds kinds program~test27->kinds module~fortime fortime program~test27->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test27~~CallsGraph program~test27 test27 check check program~test27->check proc~dtimer_start timer%dtimer_start program~test27->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test27->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~test27->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test27 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( message = 'Elapsed time:' ) call t % dtimer_write ( 'test/test27_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test27' ) end program test27","tags":"","loc":"program/test27.html"},{"title":"test24 – ForTime","text":"Uses forunittest kinds fortime program~~test24~~UsesGraph program~test24 test24 forunittest forunittest program~test24->forunittest kinds kinds program~test24->kinds module~fortime fortime program~test24->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test24~~CallsGraph program~test24 test24 check check program~test24->check mpi_finalize mpi_finalize program~test24->mpi_finalize mpi_init mpi_init program~test24->mpi_init proc~mtimer_start timer%mtimer_start program~test24->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test24->proc~mtimer_stop proc~mtimer_write timer%mtimer_write program~test24->proc~mtimer_write proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test24 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( message = 'MPI time:' , print = . false .) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test24_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test24' ) #endif end program test24","tags":"","loc":"program/test24.html"},{"title":"test12 – ForTime","text":"Uses forunittest kinds fortime program~~test12~~UsesGraph program~test12 test12 forunittest forunittest program~test12->forunittest kinds kinds program~test12->kinds module~fortime fortime program~test12->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test12~~CallsGraph program~test12 test12 check check program~test12->check mpi_finalize mpi_finalize program~test12->mpi_finalize mpi_init mpi_init program~test12->mpi_init proc~mtimer_start timer%mtimer_start program~test12->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test12->proc~mtimer_stop proc~mtimer_write timer%mtimer_write program~test12->proc~mtimer_write proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test12 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( message = 'MPI time:' ) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test12_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test12' ) #endif end program test12","tags":"","loc":"program/test12.html"},{"title":"test7 – ForTime","text":"Uses forunittest kinds fortime program~~test7~~UsesGraph program~test7 test7 forunittest forunittest program~test7->forunittest kinds kinds program~test7->kinds module~fortime fortime program~test7->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test7~~CallsGraph program~test7 test7 check check program~test7->check proc~otimer_start timer%otimer_start program~test7->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test7->proc~otimer_stop omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test7 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut #if defined(USE_OMP) ! OMP time call t % otimer_start () call sleep ( 1 ) ! Perform operations here call t % otimer_stop () call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test7' ) #endif end program test7","tags":"","loc":"program/test7.html"},{"title":"test18 – ForTime","text":"Uses kinds fortime program~~test18~~UsesGraph program~test18 test18 kinds kinds program~test18->kinds module~fortime fortime program~test18->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test18~~CallsGraph program~test18 test18 proc~ctimer_start timer%ctimer_start program~test18->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test18->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~test18->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program test18 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( message = 'CPU time:' , print = . false .) call t % ctimer_write ( 'test/test18_ctimes' ) ! Optionally, write the elapsed time to a file end program test18","tags":"","loc":"program/test18.html"},{"title":"test22 – ForTime","text":"Uses forunittest kinds fortime program~~test22~~UsesGraph program~test22 test22 forunittest forunittest program~test22->forunittest kinds kinds program~test22->kinds module~fortime fortime program~test22->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test22~~CallsGraph program~test22 test22 check check program~test22->check mpi_finalize mpi_finalize program~test22->mpi_finalize mpi_init mpi_init program~test22->mpi_init proc~mtimer_start timer%mtimer_start program~test22->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test22->proc~mtimer_stop proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr type( timer ) :: t type(unit_test) :: ut Source Code program test22 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: ierr #if defined(USE_MPI) ! MPI time call mpi_init ( ierr ) call t % mtimer_start () call sleep ( 1 ) ! Perform operations here call t % mtimer_stop ( print = . false .) call mpi_finalize ( ierr ) call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test22' ) #endif end program test22","tags":"","loc":"program/test22.html"},{"title":"test28 – ForTime","text":"Uses forunittest kinds fortime program~~test28~~UsesGraph program~test28 test28 forunittest forunittest program~test28->forunittest kinds kinds program~test28->kinds module~fortime fortime program~test28->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test28~~CallsGraph program~test28 test28 check check program~test28->check proc~dtimer_start timer%dtimer_start program~test28->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test28->proc~dtimer_stop proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test28 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop ( print = . false .) call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test28' ) end program test28","tags":"","loc":"program/test28.html"},{"title":"example3 – ForTime","text":"Uses fortime program~~example3~~UsesGraph program~example3 example3 module~fortime fortime program~example3->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example3~~CallsGraph program~example3 example3 proc~ctimer_start timer%ctimer_start program~example3->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~example3->proc~ctimer_stop proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program example3 use fortime implicit none type ( timer ) :: t call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop () end program example3","tags":"","loc":"program/example3.html"},{"title":"test17 – ForTime","text":"Uses kinds fortime program~~test17~~UsesGraph program~test17 test17 kinds kinds program~test17->kinds module~fortime fortime program~test17->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test17~~CallsGraph program~test17 test17 proc~ctimer_start timer%ctimer_start program~test17->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test17->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~test17->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program test17 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' , print = . false .) call t % ctimer_write ( 'test/test17_ctimes' ) ! Optionally, write the elapsed time to a file end program test17","tags":"","loc":"program/test17.html"},{"title":"example5 – ForTime","text":"Uses fortime program~~example5~~UsesGraph program~example5 example5 module~fortime fortime program~example5->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example5~~CallsGraph program~example5 example5 proc~dtimer_start timer%dtimer_start program~example5->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~example5->proc~dtimer_stop proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program example5 use fortime implicit none type ( timer ) :: t call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop () end program example5","tags":"","loc":"program/example5.html"},{"title":"test15 – ForTime","text":"Uses forunittest kinds fortime program~~test15~~UsesGraph program~test15 test15 forunittest forunittest program~test15->forunittest kinds kinds program~test15->kinds module~fortime fortime program~test15->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test15~~CallsGraph program~test15 test15 check check program~test15->check proc~timer_start timer%timer_start program~test15->proc~timer_start proc~timer_stop timer%timer_stop program~test15->proc~timer_stop proc~timer_write timer%timer_write program~test15->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test15 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( message = 'Elapsed time:' , print = . false .) call t % timer_write ( 'test/test15_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test15' ) end program test15","tags":"","loc":"program/test15.html"},{"title":"test16 – ForTime","text":"Uses kinds fortime program~~test16~~UsesGraph program~test16 test16 kinds kinds program~test16->kinds module~fortime fortime program~test16->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test16~~CallsGraph program~test16 test16 proc~ctimer_start timer%ctimer_start program~test16->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test16->proc~ctimer_stop proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program test16 use kinds use fortime implicit none type ( timer ) :: t ! CPU time call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop ( print = . false .) end program test16","tags":"","loc":"program/test16.html"},{"title":"test9 – ForTime","text":"Uses forunittest kinds fortime program~~test9~~UsesGraph program~test9 test9 forunittest forunittest program~test9->forunittest kinds kinds program~test9->kinds module~fortime fortime program~test9->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test9~~CallsGraph program~test9 test9 check check program~test9->check proc~otimer_start timer%otimer_start program~test9->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test9->proc~otimer_stop proc~otimer_write timer%otimer_write program~test9->proc~otimer_write omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test9 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( message = 'OMP time:' ) call t % otimer_write ( 'test/test9_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test9' ) #endif end program test9","tags":"","loc":"program/test9.html"},{"title":"test26 – ForTime","text":"Uses forunittest kinds fortime program~~test26~~UsesGraph program~test26 test26 forunittest forunittest program~test26->forunittest kinds kinds program~test26->kinds module~fortime fortime program~test26->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test26~~CallsGraph program~test26 test26 check check program~test26->check proc~dtimer_start timer%dtimer_start program~test26->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test26->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~test26->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test26 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' ) call t % dtimer_write ( 'test/test26_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test26' ) end program test26","tags":"","loc":"program/test26.html"},{"title":"test20 – ForTime","text":"Uses forunittest kinds fortime program~~test20~~UsesGraph program~test20 test20 forunittest forunittest program~test20->forunittest kinds kinds program~test20->kinds module~fortime fortime program~test20->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test20~~CallsGraph program~test20 test20 check check program~test20->check proc~otimer_start timer%otimer_start program~test20->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test20->proc~otimer_stop proc~otimer_write timer%otimer_write program~test20->proc~otimer_write omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test20 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( nloops = nloops , message = 'OMP time:' , print = . false .) call t % otimer_write ( 'test/test20_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test20' ) #endif end program test20","tags":"","loc":"program/test20.html"},{"title":"example1 – ForTime","text":"Uses fortime program~~example1~~UsesGraph program~example1 example1 module~fortime fortime program~example1->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example1~~CallsGraph program~example1 example1 proc~timer_start timer%timer_start program~example1->proc~timer_start proc~timer_stop timer%timer_stop program~example1->proc~timer_stop proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program example1 use fortime implicit none type ( timer ) :: t call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop () end program example1","tags":"","loc":"program/example1.html"},{"title":"example2 – ForTime","text":"Uses fortime program~~example2~~UsesGraph program~example2 example2 module~fortime fortime program~example2->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example2~~CallsGraph program~example2 example2 proc~timer_start timer%timer_start program~example2->proc~timer_start proc~timer_stop timer%timer_stop program~example2->proc~timer_stop proc~timer_write timer%timer_write program~example2->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program example2 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . true ., color = 'green' ) ! nloops, message, print and color are optional. call t % timer_write ( 'example/example2_etimes' ) ! Optionally, write the elapsed time to a file end program example2","tags":"","loc":"program/example2.html"},{"title":"test2 – ForTime","text":"Uses forunittest kinds fortime program~~test2~~UsesGraph program~test2 test2 forunittest forunittest program~test2->forunittest kinds kinds program~test2->kinds module~fortime fortime program~test2->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test2~~CallsGraph program~test2 test2 check check program~test2->check proc~timer_start timer%timer_start program~test2->proc~timer_start proc~timer_stop timer%timer_stop program~test2->proc~timer_stop proc~timer_write timer%timer_write program~test2->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test2 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' ) call t % timer_write ( 'test/test2_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test2' ) end program test2","tags":"","loc":"program/test2.html"},{"title":"test29 – ForTime","text":"Uses forunittest kinds fortime program~~test29~~UsesGraph program~test29 test29 forunittest forunittest program~test29->forunittest kinds kinds program~test29->kinds module~fortime fortime program~test29->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test29~~CallsGraph program~test29 test29 check check program~test29->check proc~dtimer_start timer%dtimer_start program~test29->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test29->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~test29->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test29 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . false .) call t % dtimer_write ( 'test/test29_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test29' ) end program test29","tags":"","loc":"program/test29.html"},{"title":"test6 – ForTime","text":"Uses kinds fortime program~~test6~~UsesGraph program~test6 test6 kinds kinds program~test6->kinds module~fortime fortime program~test6->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test6~~CallsGraph program~test6 test6 proc~ctimer_start timer%ctimer_start program~test6->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test6->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~test6->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program test6 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( message = 'CPU time:' ) call t % ctimer_write ( 'test/test6_ctimes' ) ! Optionally, write the elapsed time to a file end program test6","tags":"","loc":"program/test6.html"},{"title":"test8 – ForTime","text":"Uses forunittest kinds fortime program~~test8~~UsesGraph program~test8 test8 forunittest forunittest program~test8->forunittest kinds kinds program~test8->kinds module~fortime fortime program~test8->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test8~~CallsGraph program~test8 test8 check check program~test8->check proc~otimer_start timer%otimer_start program~test8->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test8->proc~otimer_stop proc~otimer_write timer%otimer_write program~test8->proc~otimer_write omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test8 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( nloops = nloops , message = 'OMP time:' ) call t % otimer_write ( 'test/test8_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test8' ) #endif end program test8","tags":"","loc":"program/test8.html"},{"title":"test3 – ForTime","text":"Uses forunittest kinds fortime program~~test3~~UsesGraph program~test3 test3 forunittest forunittest program~test3->forunittest kinds kinds program~test3->kinds module~fortime fortime program~test3->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test3~~CallsGraph program~test3 test3 check check program~test3->check proc~timer_start timer%timer_start program~test3->proc~timer_start proc~timer_stop timer%timer_stop program~test3->proc~timer_stop proc~timer_write timer%timer_write program~test3->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test3 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( message = 'Elapsed time:' ) call t % timer_write ( 'test/test3_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test3' ) end program test3","tags":"","loc":"program/test3.html"},{"title":"test1 – ForTime","text":"Uses forunittest kinds fortime program~~test1~~UsesGraph program~test1 test1 forunittest forunittest program~test1->forunittest kinds kinds program~test1->kinds module~fortime fortime program~test1->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test1~~CallsGraph program~test1 test1 check check program~test1->check proc~timer_start timer%timer_start program~test1->proc~timer_start proc~timer_stop timer%timer_stop program~test1->proc~timer_stop proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test1 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop () call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test1' ) end program test1","tags":"","loc":"program/test1.html"},{"title":"test14 – ForTime","text":"Uses forunittest kinds fortime program~~test14~~UsesGraph program~test14 test14 forunittest forunittest program~test14->forunittest kinds kinds program~test14->kinds module~fortime fortime program~test14->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test14~~CallsGraph program~test14 test14 check check program~test14->check proc~timer_start timer%timer_start program~test14->proc~timer_start proc~timer_stop timer%timer_stop program~test14->proc~timer_stop proc~timer_write timer%timer_write program~test14->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test14 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . false .) call t % timer_write ( 'test/test14_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test14' ) end program test14","tags":"","loc":"program/test14.html"},{"title":"test25 – ForTime","text":"Uses forunittest kinds fortime program~~test25~~UsesGraph program~test25 test25 forunittest forunittest program~test25->forunittest kinds kinds program~test25->kinds module~fortime fortime program~test25->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test25~~CallsGraph program~test25 test25 check check program~test25->check proc~dtimer_start timer%dtimer_start program~test25->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test25->proc~dtimer_stop proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test25 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop () call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test25' ) end program test25","tags":"","loc":"program/test25.html"},{"title":"example6 – ForTime","text":"Uses fortime program~~example6~~UsesGraph program~example6 example6 module~fortime fortime program~example6->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example6~~CallsGraph program~example6 example6 proc~dtimer_start timer%dtimer_start program~example6->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~example6->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~example6->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program example6 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . true ., color = 'red' ) ! nloops, message, print and color are optional. call t % dtimer_write ( 'example/example6_etimes' ) ! Optionally, write the elapsed time to a file end program example6","tags":"","loc":"program/example6.html"},{"title":"test4 – ForTime","text":"Uses kinds fortime program~~test4~~UsesGraph program~test4 test4 kinds kinds program~test4->kinds module~fortime fortime program~test4->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test4~~CallsGraph program~test4 test4 proc~ctimer_start timer%ctimer_start program~test4->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test4->proc~ctimer_stop proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program test4 use kinds use fortime implicit none type ( timer ) :: t ! CPU time call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop () end program test4","tags":"","loc":"program/test4.html"},{"title":"example4 – ForTime","text":"Uses fortime program~~example4~~UsesGraph program~example4 example4 module~fortime fortime program~example4->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example4~~CallsGraph program~example4 example4 proc~ctimer_start timer%ctimer_start program~example4->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~example4->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~example4->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program example4 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' , print = . true ., color = 'yellow' ) ! nloops, message, print and color are optional. call t % ctimer_write ( 'example/example4_ctimes' ) ! Optionally, write the elapsed time to a file end program example4","tags":"","loc":"program/example4.html"},{"title":"test11 – ForTime","text":"Uses forunittest kinds fortime program~~test11~~UsesGraph program~test11 test11 forunittest forunittest program~test11->forunittest kinds kinds program~test11->kinds module~fortime fortime program~test11->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test11~~CallsGraph program~test11 test11 check check program~test11->check mpi_finalize mpi_finalize program~test11->mpi_finalize mpi_init mpi_init program~test11->mpi_init proc~mtimer_start timer%mtimer_start program~test11->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test11->proc~mtimer_stop proc~mtimer_write timer%mtimer_write program~test11->proc~mtimer_write proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test11 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( nloops = nloops , message = 'MPI time:' ) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test11_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test11' ) #endif end program test11","tags":"","loc":"program/test11.html"},{"title":"test13 – ForTime","text":"Uses forunittest kinds fortime program~~test13~~UsesGraph program~test13 test13 forunittest forunittest program~test13->forunittest kinds kinds program~test13->kinds module~fortime fortime program~test13->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test13~~CallsGraph program~test13 test13 check check program~test13->check proc~timer_start timer%timer_start program~test13->proc~timer_start proc~timer_stop timer%timer_stop program~test13->proc~timer_stop proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test13 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop ( print = . false .) call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test13' ) end program test13","tags":"","loc":"program/test13.html"},{"title":"test23 – ForTime","text":"Uses forunittest kinds fortime program~~test23~~UsesGraph program~test23 test23 forunittest forunittest program~test23->forunittest kinds kinds program~test23->kinds module~fortime fortime program~test23->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test23~~CallsGraph program~test23 test23 check check program~test23->check mpi_finalize mpi_finalize program~test23->mpi_finalize mpi_init mpi_init program~test23->mpi_init proc~mtimer_start timer%mtimer_start program~test23->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test23->proc~mtimer_stop proc~mtimer_write timer%mtimer_write program~test23->proc~mtimer_write proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test23 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( nloops = nloops , message = 'MPI time:' , print = . false .) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test23_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test23' ) #endif end program test23","tags":"","loc":"program/test23.html"},{"title":"test21 – ForTime","text":"Uses forunittest kinds fortime program~~test21~~UsesGraph program~test21 test21 forunittest forunittest program~test21->forunittest kinds kinds program~test21->kinds module~fortime fortime program~test21->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test21~~CallsGraph program~test21 test21 check check program~test21->check proc~otimer_start timer%otimer_start program~test21->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test21->proc~otimer_stop proc~otimer_write timer%otimer_write program~test21->proc~otimer_write omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test21 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( message = 'OMP time:' , print = . false .) call t % otimer_write ( 'test/test21_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test21' ) #endif end program test21","tags":"","loc":"program/test21.html"},{"title":"test19 – ForTime","text":"Uses forunittest kinds fortime program~~test19~~UsesGraph program~test19 test19 forunittest forunittest program~test19->forunittest kinds kinds program~test19->kinds module~fortime fortime program~test19->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test19~~CallsGraph program~test19 test19 check check program~test19->check proc~otimer_start timer%otimer_start program~test19->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test19->proc~otimer_stop omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test19 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut #if defined(USE_OMP) ! OMP time call t % otimer_start () call sleep ( 1 ) ! Perform operations here call t % otimer_stop ( print = . false .) call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test19' ) #endif end program test19","tags":"","loc":"program/test19.html"},{"title":"test5 – ForTime","text":"Uses kinds fortime program~~test5~~UsesGraph program~test5 test5 kinds kinds program~test5->kinds module~fortime fortime program~test5->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test5~~CallsGraph program~test5 test5 proc~ctimer_start timer%ctimer_start program~test5->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test5->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~test5->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program test5 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' ) call t % ctimer_write ( 'test/test5_ctimes' ) ! Optionally, write the elapsed time to a file end program test5","tags":"","loc":"program/test5.html"},{"title":"test30.f90 – ForTime","text":"This file depends on sourcefile~~test30.f90~~EfferentGraph sourcefile~test30.f90 test30.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test30.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test30 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( message = 'Elapsed time:' , print = . false .) call t % dtimer_write ( 'test/test30_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test30' ) end program test30","tags":"","loc":"sourcefile/test30.f90.html"},{"title":"test10.f90 – ForTime","text":"This file depends on sourcefile~~test10.f90~~EfferentGraph sourcefile~test10.f90 test10.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test10.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test10 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: ierr #if defined(USE_MPI) ! MPI time call mpi_init ( ierr ) call t % mtimer_start () call sleep ( 1 ) ! Perform operations here call t % mtimer_stop () call mpi_finalize ( ierr ) call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test10' ) #endif end program test10","tags":"","loc":"sourcefile/test10.f90.html"},{"title":"test27.f90 – ForTime","text":"This file depends on sourcefile~~test27.f90~~EfferentGraph sourcefile~test27.f90 test27.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test27.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test27 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( message = 'Elapsed time:' ) call t % dtimer_write ( 'test/test27_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test27' ) end program test27","tags":"","loc":"sourcefile/test27.f90.html"},{"title":"test24.f90 – ForTime","text":"This file depends on sourcefile~~test24.f90~~EfferentGraph sourcefile~test24.f90 test24.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test24.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test24 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( message = 'MPI time:' , print = . false .) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test24_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test24' ) #endif end program test24","tags":"","loc":"sourcefile/test24.f90.html"},{"title":"test12.f90 – ForTime","text":"This file depends on sourcefile~~test12.f90~~EfferentGraph sourcefile~test12.f90 test12.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test12.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test12 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( message = 'MPI time:' ) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test12_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test12' ) #endif end program test12","tags":"","loc":"sourcefile/test12.f90.html"},{"title":"test7.f90 – ForTime","text":"This file depends on sourcefile~~test7.f90~~EfferentGraph sourcefile~test7.f90 test7.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test7.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test7 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut #if defined(USE_OMP) ! OMP time call t % otimer_start () call sleep ( 1 ) ! Perform operations here call t % otimer_stop () call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test7' ) #endif end program test7","tags":"","loc":"sourcefile/test7.f90.html"},{"title":"test18.f90 – ForTime","text":"This file depends on sourcefile~~test18.f90~~EfferentGraph sourcefile~test18.f90 test18.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test18.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test18 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( message = 'CPU time:' , print = . false .) call t % ctimer_write ( 'test/test18_ctimes' ) ! Optionally, write the elapsed time to a file end program test18","tags":"","loc":"sourcefile/test18.f90.html"},{"title":"test22.f90 – ForTime","text":"This file depends on sourcefile~~test22.f90~~EfferentGraph sourcefile~test22.f90 test22.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test22.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test22 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: ierr #if defined(USE_MPI) ! MPI time call mpi_init ( ierr ) call t % mtimer_start () call sleep ( 1 ) ! Perform operations here call t % mtimer_stop ( print = . false .) call mpi_finalize ( ierr ) call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test22' ) #endif end program test22","tags":"","loc":"sourcefile/test22.f90.html"},{"title":"test28.f90 – ForTime","text":"This file depends on sourcefile~~test28.f90~~EfferentGraph sourcefile~test28.f90 test28.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test28.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test28 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop ( print = . false .) call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test28' ) end program test28","tags":"","loc":"sourcefile/test28.f90.html"},{"title":"example3.f90 – ForTime","text":"This file depends on sourcefile~~example3.f90~~EfferentGraph sourcefile~example3.f90 example3.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example3.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example3 use fortime implicit none type ( timer ) :: t call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop () end program example3","tags":"","loc":"sourcefile/example3.f90.html"},{"title":"test17.f90 – ForTime","text":"This file depends on sourcefile~~test17.f90~~EfferentGraph sourcefile~test17.f90 test17.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test17.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test17 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' , print = . false .) call t % ctimer_write ( 'test/test17_ctimes' ) ! Optionally, write the elapsed time to a file end program test17","tags":"","loc":"sourcefile/test17.f90.html"},{"title":"example5.f90 – ForTime","text":"This file depends on sourcefile~~example5.f90~~EfferentGraph sourcefile~example5.f90 example5.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example5.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example5 use fortime implicit none type ( timer ) :: t call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop () end program example5","tags":"","loc":"sourcefile/example5.f90.html"},{"title":"test15.f90 – ForTime","text":"This file depends on sourcefile~~test15.f90~~EfferentGraph sourcefile~test15.f90 test15.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test15.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test15 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( message = 'Elapsed time:' , print = . false .) call t % timer_write ( 'test/test15_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test15' ) end program test15","tags":"","loc":"sourcefile/test15.f90.html"},{"title":"test16.f90 – ForTime","text":"This file depends on sourcefile~~test16.f90~~EfferentGraph sourcefile~test16.f90 test16.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test16.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test16 use kinds use fortime implicit none type ( timer ) :: t ! CPU time call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop ( print = . false .) end program test16","tags":"","loc":"sourcefile/test16.f90.html"},{"title":"test9.f90 – ForTime","text":"This file depends on sourcefile~~test9.f90~~EfferentGraph sourcefile~test9.f90 test9.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test9.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test9 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( message = 'OMP time:' ) call t % otimer_write ( 'test/test9_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test9' ) #endif end program test9","tags":"","loc":"sourcefile/test9.f90.html"},{"title":"test26.f90 – ForTime","text":"This file depends on sourcefile~~test26.f90~~EfferentGraph sourcefile~test26.f90 test26.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test26.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test26 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' ) call t % dtimer_write ( 'test/test26_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test26' ) end program test26","tags":"","loc":"sourcefile/test26.f90.html"},{"title":"test20.f90 – ForTime","text":"This file depends on sourcefile~~test20.f90~~EfferentGraph sourcefile~test20.f90 test20.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test20.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test20 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( nloops = nloops , message = 'OMP time:' , print = . false .) call t % otimer_write ( 'test/test20_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test20' ) #endif end program test20","tags":"","loc":"sourcefile/test20.f90.html"},{"title":"example1.f90 – ForTime","text":"This file depends on sourcefile~~example1.f90~~EfferentGraph sourcefile~example1.f90 example1.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example1.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example1 use fortime implicit none type ( timer ) :: t call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop () end program example1","tags":"","loc":"sourcefile/example1.f90.html"},{"title":"example2.f90 – ForTime","text":"This file depends on sourcefile~~example2.f90~~EfferentGraph sourcefile~example2.f90 example2.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example2.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example2 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . true ., color = 'green' ) ! nloops, message, print and color are optional. call t % timer_write ( 'example/example2_etimes' ) ! Optionally, write the elapsed time to a file end program example2","tags":"","loc":"sourcefile/example2.f90.html"},{"title":"test2.f90 – ForTime","text":"This file depends on sourcefile~~test2.f90~~EfferentGraph sourcefile~test2.f90 test2.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test2.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test2 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' ) call t % timer_write ( 'test/test2_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test2' ) end program test2","tags":"","loc":"sourcefile/test2.f90.html"},{"title":"test29.f90 – ForTime","text":"This file depends on sourcefile~~test29.f90~~EfferentGraph sourcefile~test29.f90 test29.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test29.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test29 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . false .) call t % dtimer_write ( 'test/test29_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test29' ) end program test29","tags":"","loc":"sourcefile/test29.f90.html"},{"title":"test6.f90 – ForTime","text":"This file depends on sourcefile~~test6.f90~~EfferentGraph sourcefile~test6.f90 test6.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test6.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test6 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( message = 'CPU time:' ) call t % ctimer_write ( 'test/test6_ctimes' ) ! Optionally, write the elapsed time to a file end program test6","tags":"","loc":"sourcefile/test6.f90.html"},{"title":"test8.f90 – ForTime","text":"This file depends on sourcefile~~test8.f90~~EfferentGraph sourcefile~test8.f90 test8.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test8.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test8 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( nloops = nloops , message = 'OMP time:' ) call t % otimer_write ( 'test/test8_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test8' ) #endif end program test8","tags":"","loc":"sourcefile/test8.f90.html"},{"title":"test3.f90 – ForTime","text":"This file depends on sourcefile~~test3.f90~~EfferentGraph sourcefile~test3.f90 test3.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test3.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test3 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( message = 'Elapsed time:' ) call t % timer_write ( 'test/test3_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test3' ) end program test3","tags":"","loc":"sourcefile/test3.f90.html"},{"title":"test1.f90 – ForTime","text":"This file depends on sourcefile~~test1.f90~~EfferentGraph sourcefile~test1.f90 test1.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test1.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test1 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop () call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test1' ) end program test1","tags":"","loc":"sourcefile/test1.f90.html"},{"title":"test14.f90 – ForTime","text":"This file depends on sourcefile~~test14.f90~~EfferentGraph sourcefile~test14.f90 test14.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test14.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test14 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . false .) call t % timer_write ( 'test/test14_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test14' ) end program test14","tags":"","loc":"sourcefile/test14.f90.html"},{"title":"test25.f90 – ForTime","text":"This file depends on sourcefile~~test25.f90~~EfferentGraph sourcefile~test25.f90 test25.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test25.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test25 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop () call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test25' ) end program test25","tags":"","loc":"sourcefile/test25.f90.html"},{"title":"example6.f90 – ForTime","text":"This file depends on sourcefile~~example6.f90~~EfferentGraph sourcefile~example6.f90 example6.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example6.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example6 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . true ., color = 'red' ) ! nloops, message, print and color are optional. call t % dtimer_write ( 'example/example6_etimes' ) ! Optionally, write the elapsed time to a file end program example6","tags":"","loc":"sourcefile/example6.f90.html"},{"title":"test4.f90 – ForTime","text":"This file depends on sourcefile~~test4.f90~~EfferentGraph sourcefile~test4.f90 test4.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test4.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test4 use kinds use fortime implicit none type ( timer ) :: t ! CPU time call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop () end program test4","tags":"","loc":"sourcefile/test4.f90.html"},{"title":"example4.f90 – ForTime","text":"This file depends on sourcefile~~example4.f90~~EfferentGraph sourcefile~example4.f90 example4.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example4.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example4 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' , print = . true ., color = 'yellow' ) ! nloops, message, print and color are optional. call t % ctimer_write ( 'example/example4_ctimes' ) ! Optionally, write the elapsed time to a file end program example4","tags":"","loc":"sourcefile/example4.f90.html"},{"title":"test11.f90 – ForTime","text":"This file depends on sourcefile~~test11.f90~~EfferentGraph sourcefile~test11.f90 test11.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test11.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test11 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( nloops = nloops , message = 'MPI time:' ) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test11_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test11' ) #endif end program test11","tags":"","loc":"sourcefile/test11.f90.html"},{"title":"test13.f90 – ForTime","text":"This file depends on sourcefile~~test13.f90~~EfferentGraph sourcefile~test13.f90 test13.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test13.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test13 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop ( print = . false .) call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test13' ) end program test13","tags":"","loc":"sourcefile/test13.f90.html"},{"title":"test23.f90 – ForTime","text":"This file depends on sourcefile~~test23.f90~~EfferentGraph sourcefile~test23.f90 test23.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test23.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test23 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( nloops = nloops , message = 'MPI time:' , print = . false .) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test23_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test23' ) #endif end program test23","tags":"","loc":"sourcefile/test23.f90.html"},{"title":"fortime.f90 – ForTime","text":"Files dependent on this one sourcefile~~fortime.f90~~AfferentGraph sourcefile~fortime.f90 fortime.f90 sourcefile~example1.f90 example1.f90 sourcefile~example1.f90->sourcefile~fortime.f90 sourcefile~example2.f90 example2.f90 sourcefile~example2.f90->sourcefile~fortime.f90 sourcefile~example3.f90 example3.f90 sourcefile~example3.f90->sourcefile~fortime.f90 sourcefile~example4.f90 example4.f90 sourcefile~example4.f90->sourcefile~fortime.f90 sourcefile~example5.f90 example5.f90 sourcefile~example5.f90->sourcefile~fortime.f90 sourcefile~example6.f90 example6.f90 sourcefile~example6.f90->sourcefile~fortime.f90 sourcefile~test1.f90 test1.f90 sourcefile~test1.f90->sourcefile~fortime.f90 sourcefile~test10.f90 test10.f90 sourcefile~test10.f90->sourcefile~fortime.f90 sourcefile~test11.f90 test11.f90 sourcefile~test11.f90->sourcefile~fortime.f90 sourcefile~test12.f90 test12.f90 sourcefile~test12.f90->sourcefile~fortime.f90 sourcefile~test13.f90 test13.f90 sourcefile~test13.f90->sourcefile~fortime.f90 sourcefile~test14.f90 test14.f90 sourcefile~test14.f90->sourcefile~fortime.f90 sourcefile~test15.f90 test15.f90 sourcefile~test15.f90->sourcefile~fortime.f90 sourcefile~test16.f90 test16.f90 sourcefile~test16.f90->sourcefile~fortime.f90 sourcefile~test17.f90 test17.f90 sourcefile~test17.f90->sourcefile~fortime.f90 sourcefile~test18.f90 test18.f90 sourcefile~test18.f90->sourcefile~fortime.f90 sourcefile~test19.f90 test19.f90 sourcefile~test19.f90->sourcefile~fortime.f90 sourcefile~test2.f90 test2.f90 sourcefile~test2.f90->sourcefile~fortime.f90 sourcefile~test20.f90 test20.f90 sourcefile~test20.f90->sourcefile~fortime.f90 sourcefile~test21.f90 test21.f90 sourcefile~test21.f90->sourcefile~fortime.f90 sourcefile~test22.f90 test22.f90 sourcefile~test22.f90->sourcefile~fortime.f90 sourcefile~test23.f90 test23.f90 sourcefile~test23.f90->sourcefile~fortime.f90 sourcefile~test24.f90 test24.f90 sourcefile~test24.f90->sourcefile~fortime.f90 sourcefile~test25.f90 test25.f90 sourcefile~test25.f90->sourcefile~fortime.f90 sourcefile~test26.f90 test26.f90 sourcefile~test26.f90->sourcefile~fortime.f90 sourcefile~test27.f90 test27.f90 sourcefile~test27.f90->sourcefile~fortime.f90 sourcefile~test28.f90 test28.f90 sourcefile~test28.f90->sourcefile~fortime.f90 sourcefile~test29.f90 test29.f90 sourcefile~test29.f90->sourcefile~fortime.f90 sourcefile~test3.f90 test3.f90 sourcefile~test3.f90->sourcefile~fortime.f90 sourcefile~test30.f90 test30.f90 sourcefile~test30.f90->sourcefile~fortime.f90 sourcefile~test4.f90 test4.f90 sourcefile~test4.f90->sourcefile~fortime.f90 sourcefile~test5.f90 test5.f90 sourcefile~test5.f90->sourcefile~fortime.f90 sourcefile~test6.f90 test6.f90 sourcefile~test6.f90->sourcefile~fortime.f90 sourcefile~test7.f90 test7.f90 sourcefile~test7.f90->sourcefile~fortime.f90 sourcefile~test8.f90 test8.f90 sourcefile~test8.f90->sourcefile~fortime.f90 sourcefile~test9.f90 test9.f90 sourcefile~test9.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code !> This module provides a timer object for measuring elapsed time. !> It includes procedures for starting and stopping the timer, as well !> as calculating and printing the elapsed time in seconds. module fortime use kinds implicit none private public :: timer !=============================================================================== type :: timer integer , private :: clock_rate ! Processor clock rate integer , private :: clock_start ! Start time in processor ticks integer , private :: clock_end ! End time in processor ticks integer , private :: clock_elapsed ! Elapsed time in processor ticks real ( rk ) :: elapsed_time ! Elapsed time in seconds real ( rk ), private :: cpu_start ! Start CPU time real ( rk ), private :: cpu_end ! End CPU time real ( rk ), private :: cpu_elapsed ! Elapsed CPU time real ( rk ) :: cpu_time ! Elapsed time in seconds #if defined(USE_OMP) real ( rk ), private :: omp_start ! Start OMP time real ( rk ), private :: omp_end ! End OMP time real ( rk ), private :: omp_elapsed ! Elapsed OMP time real ( rk ) :: omp_time ! Elapsed time in seconds #endif #if defined(USE_MPI) real ( rk ), private :: mpi_start ! Start MPI time real ( rk ), private :: mpi_end ! End MPI time real ( rk ), private :: mpi_elapsed ! Elapsed MPI time real ( rk ) :: mpi_time ! Elapsed time in seconds #endif integer , dimension ( 8 ), private :: values_start ! Start date and time values integer , dimension ( 8 ), private :: values_end ! End date and time values integer , dimension ( 8 ), private :: values_elapsed ! Elapsed date and time values real ( rk ) :: elapsed_dtime ! Elapsed time in seconds contains procedure :: timer_start ! Procedure for starting the timer procedure :: timer_stop ! Procedure for stopping the timer procedure :: timer_write ! Procedure for writing elapsed time to a file procedure :: ctimer_start ! Procedure for starting the CPU timer procedure :: ctimer_stop ! Procedure for stopping the CPU timer procedure :: ctimer_write ! Procedure for writing elapsed CPU time to a file #if defined(USE_OMP) procedure :: otimer_start ! Procedure for starting the OMP timer procedure :: otimer_stop ! Procedure for stopping the OMP timer procedure :: otimer_write ! Procedure for writing elapsed OMP time to a file #endif #if defined(USE_MPI) procedure :: mtimer_start ! Procedure for starting the MPI timer procedure :: mtimer_stop ! Procedure for stopping the MPI timer procedure :: mtimer_write ! Procedure for writing elapsed MPI time to a file #endif procedure :: dtimer_start ! Procedure for starting the date_and_time timer procedure :: dtimer_stop ! Procedure for stopping the date_and_time timer procedure :: dtimer_write ! Procedure for writing elapsed date_and_time time to a file end type !=============================================================================== contains !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current processor clock value. !> This value is used to calculate the elapsed time later. impure subroutine timer_start ( this ) class ( timer ), intent ( inout ) :: this ! Get the processor clock rate call system_clock ( count_rate = this % clock_rate ) ! Start the timer call system_clock ( count = this % clock_start ) end subroutine timer_start !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the elapsed time. !> Optionally, it can print a message along with the elapsed time. impure subroutine timer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer call system_clock ( count = this % clock_end ) ! Calculate the elapsed processor ticks this % clock_elapsed = this % clock_end - this % clock_start ! Convert processor ticks to seconds if (. not . present ( nloops )) & this % elapsed_time = real ( this % clock_elapsed , kind = rk ) / real ( this % clock_rate , kind = rk ) if ( present ( nloops )) & this % elapsed_time = real ( this % clock_elapsed , kind = rk ) / real ( this % clock_rate , kind = rk ) / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"Elapsed time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % elapsed_time , msg , color ) else call print_time ( this % elapsed_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine timer_stop !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the elapsed time to a file. impure subroutine timer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the elapsed time to the file write ( nunit , '(g0)' ) this % elapsed_time ! Close the file close ( nunit ) end subroutine timer_write !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current CPU time value. !> This value is used to calculate the CPU time later. impure subroutine ctimer_start ( this ) class ( timer ), intent ( inout ) :: this ! Start the timer call cpu_time ( this % cpu_start ) end subroutine ctimer_start !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the CPU time. !> Optionally, it can print a message along with the CPU time. impure subroutine ctimer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer call cpu_time ( this % cpu_end ) ! Calculate the elapsed CPU time this % cpu_elapsed = this % cpu_end - this % cpu_start ! Convert CPU time to seconds if (. not . present ( nloops )) this % cpu_time = this % cpu_elapsed if ( present ( nloops )) this % cpu_time = this % cpu_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"CPU time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % cpu_time , msg , color ) else call print_time ( this % cpu_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine ctimer_stop !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the CPU time to a file. impure subroutine ctimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the CPU time to the file write ( nunit , '(g0)' ) this % cpu_time ! Close the file close ( nunit ) end subroutine ctimer_write !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current OMP time value. !> This value is used to calculate the OMP time later. #if defined(USE_OMP) impure subroutine otimer_start ( this ) use omp_lib class ( timer ), intent ( inout ) :: this ! Start the timer this % omp_start = omp_get_wtime () end subroutine otimer_start !=============================================================================== #endif #if defined(USE_OMP) !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the OMP time. !> Optionally, it can print a message along with the OMP time. impure subroutine otimer_stop ( this , nloops , message , print , color ) use omp_lib class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer this % omp_end = omp_get_wtime () ! Calculate the elapsed OMP time this % omp_elapsed = this % omp_end - this % omp_start ! Convert OMP time to seconds if (. not . present ( nloops )) this % omp_time = this % omp_elapsed if ( present ( nloops )) this % omp_time = this % omp_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"OMP time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % omp_time , msg , color ) else call print_time ( this % omp_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine otimer_stop !=============================================================================== #endif #if defined(USE_OMP) !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the OMP time to a file. impure subroutine otimer_write ( this , file_name ) use omp_lib class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the OMP time to the file write ( nunit , '(g0)' ) this % omp_time ! Close the file close ( nunit ) end subroutine otimer_write !=============================================================================== #endif #if defined(USE_MPI) !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current MPI time value. !> This value is used to calculate the MPI time later. impure subroutine mtimer_start ( this ) ! include 'mpif.h' class ( timer ), intent ( inout ) :: this interface function mpi_wtime () import rk real ( rk ) :: mpi_wtime end function mpi_wtime end interface ! Start the timer this % mpi_start = mpi_wtime () end subroutine mtimer_start !=============================================================================== #endif #if defined(USE_MPI) !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the MPI time. !> Optionally, it can print a message along with the MPI time. impure subroutine mtimer_stop ( this , nloops , message , print , color ) ! include 'mpif.h' class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color interface function mpi_wtime () import rk real ( rk ) :: mpi_wtime end function mpi_wtime end interface ! Stop the timer this % mpi_end = mpi_wtime () ! Calculate the elapsed MPI time this % mpi_elapsed = this % mpi_end - this % mpi_start ! Convert MPI time to seconds if (. not . present ( nloops )) this % mpi_time = this % mpi_elapsed if ( present ( nloops )) this % mpi_time = this % mpi_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"MPI time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % mpi_time , msg , color ) else call print_time ( this % mpi_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine mtimer_stop !=============================================================================== #endif #if defined(USE_MPI) !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the MPI time to a file. impure subroutine mtimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the MPI time to the file write ( nunit , '(g0)' ) this % mpi_time ! Close the file close ( nunit ) end subroutine mtimer_write !=============================================================================== #endif !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current processor clock value. !> This value is used to calculate the elapsed time later. impure subroutine dtimer_start ( this ) class ( timer ), intent ( inout ) :: this ! Start the timer call date_and_time ( values = this % values_start ) end subroutine dtimer_start !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the elapsed time. !> Optionally, it can print a message along with the elapsed time. impure subroutine dtimer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print real ( rk ) :: values_elapsed_sec character ( * ), intent ( in ), optional :: color ! Stop the timer call date_and_time ( values = this % values_end ) ! Calculate the elapsed processor ticks this % values_elapsed = this % values_end - this % values_start ! Convert processor ticks to seconds if (. not . present ( nloops )) & this % elapsed_dtime = to_seconds ( this % values_elapsed ) if ( present ( nloops )) & this % elapsed_dtime = to_seconds ( this % values_elapsed ) / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"Elapsed time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % elapsed_dtime , msg , color ) else call print_time ( this % elapsed_dtime , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine dtimer_stop !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the elapsed time to a file. impure subroutine dtimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the elapsed time to the file write ( nunit , '(g0)' ) this % elapsed_dtime ! Close the file close ( nunit ) end subroutine dtimer_write !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi pure function to_seconds ( values ) result ( seconds ) integer , dimension ( 8 ), intent ( in ) :: values real ( rk ) :: seconds seconds = real ( values ( 3 ), rk ) * 2 4.0_rk * 6 0.0_rk * 6 0.0_rk + & real ( values ( 5 ), rk ) * 6 0.0_rk * 6 0.0_rk + & real ( values ( 6 ), rk ) * 6 0.0_rk + & real ( values ( 7 ), rk ) + & real ( values ( 8 ), rk ) / 100 0.0_rk end function to_seconds !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi impure subroutine print_time ( time , message , color ) use face real ( rk ), intent ( in ) :: time character ( * ), intent ( in ) :: message character ( * ), intent ( in ), optional :: color if ( present ( color )) then print '(A, F16.9, A)' , colorize ( trim ( message ), color_fg = trim ( color )), time , colorize ( \" [s]\" , color_fg = trim ( color )) else print '(A, F16.9, A)' , colorize ( trim ( message ), color_fg = 'blue' ), time , colorize ( \" [s]\" , color_fg = 'blue' ) end if end subroutine print_time !=============================================================================== end module fortime","tags":"","loc":"sourcefile/fortime.f90.html"},{"title":"test21.f90 – ForTime","text":"This file depends on sourcefile~~test21.f90~~EfferentGraph sourcefile~test21.f90 test21.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test21.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test21 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( message = 'OMP time:' , print = . false .) call t % otimer_write ( 'test/test21_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test21' ) #endif end program test21","tags":"","loc":"sourcefile/test21.f90.html"},{"title":"test19.f90 – ForTime","text":"This file depends on sourcefile~~test19.f90~~EfferentGraph sourcefile~test19.f90 test19.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test19.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test19 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut #if defined(USE_OMP) ! OMP time call t % otimer_start () call sleep ( 1 ) ! Perform operations here call t % otimer_stop ( print = . false .) call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test19' ) #endif end program test19","tags":"","loc":"sourcefile/test19.f90.html"},{"title":"test5.f90 – ForTime","text":"This file depends on sourcefile~~test5.f90~~EfferentGraph sourcefile~test5.f90 test5.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test5.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test5 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' ) call t % ctimer_write ( 'test/test5_ctimes' ) ! Optionally, write the elapsed time to a file end program test5","tags":"","loc":"sourcefile/test5.f90.html"}]}
\ No newline at end of file
+var tipuesearch = {"pages":[{"title":" ForTime ","text":"ForTime ForTime : A Fortran library for measuring elapsed time, DATE_AND_TIME time, CPU time, OMP time and MPI time. fpm dependency If you want to use ForTime as a dependency in your own fpm project,\nyou can easily include it by adding the following line to your fpm.toml file: [dependencies] fortime = { git = \"https://github.com/gha3mi/fortime.git\" } Usage Measuring elapsed time (system_clock) use fortime type ( timer ) :: t call t % timer_start () ! Your code or section to be timed call t % timer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % timer_write ( file_name ) ! Optionally, write the result to a file Measuring elapsed time (date_and_time) use fortime type ( timer ) :: t call t % dtimer_start () ! Your code or section to be timed call t % dtimer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % dtimer_write ( file_name ) ! Optionally, write the result to a file Measuring CPU time (cpu_time) use fortime type ( timer ) :: t call t % ctimer_start () ! Your code or section to be timed call t % ctimer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % ctimer_write ( file_name ) ! Optionally, write the result to a file Measuring OpenMP time (omp_get_wtime) use fortime type ( timer ) :: t call t % otimer_start () ! Your code or section to be timed call t % otimer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % otimer_write ( file_name ) ! Optionally, write the result to a file Note: Compile with the -DUSE_OMP option when using the OpenMP timer. Measuring MPI time (mpi_wtime) use fortime type ( timer ) :: t call t % mtimer_start () ! Your code or section to be timed call t % mtimer_stop ( nloops , message , print , color ) ! nloops, message, print and color are optional call t % mtimer_write ( file_name ) ! Optionally, write the result to a file Note: Compile with the -DUSE_MPI option when using the MPI timer. To measure elapsed time within a pure procedure, use ForDebug . Running Examples and Tests Clone the Repository First, clone the ForTime repository from GitHub and navigate to the project directory: git clone https://github.com/gha3mi/fortime.git cd fortime Running Examples To run a specific example from the example directory using your preferred Fortran compiler, use the following command: fpm run --example --compiler Replace with the name of the example file (excluding the .f90 extension) and with the name of your Fortran compiler (e.g., ifx , ifort , gfortran , nvfortran ). Running Tests To execute tests, use the following command with your chosen compiler: fpm test --compiler Replace with the name of your Fortran compiler. Documentation The most up-to-date API documentation for the master branch is available here .\nTo generate the API documentation for ForTime using ford run the following\ncommand: ford ford.yml Contributing Contributions to ForTime are welcome! If you find any issues or would like to suggest improvements, please open an issue. Developer Info Seyed Ali Ghasemi","tags":"home","loc":"index.html"},{"title":"timer – ForTime ","text":"type, public :: timer Components Type Visibility Attributes Name Initial real(kind=rk), public :: cpu_time real(kind=rk), public :: elapsed_dtime real(kind=rk), public :: elapsed_time real(kind=rk), public :: mpi_time real(kind=rk), public :: omp_time integer, private :: clock_elapsed integer, private :: clock_end integer, private :: clock_rate integer, private :: clock_start real(kind=rk), private :: cpu_elapsed real(kind=rk), private :: cpu_end real(kind=rk), private :: cpu_start real(kind=rk), private :: mpi_elapsed real(kind=rk), private :: mpi_end real(kind=rk), private :: mpi_start real(kind=rk), private :: omp_elapsed real(kind=rk), private :: omp_end real(kind=rk), private :: omp_start integer, private, dimension(8) :: values_elapsed integer, private, dimension(8) :: values_end integer, private, dimension(8) :: values_start Type-Bound Procedures procedure, public :: ctimer_start private impure subroutine ctimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current CPU time value.\nThis value is used to calculate the CPU time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: ctimer_stop private impure subroutine ctimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the CPU time.\nOptionally, it can print a message along with the CPU time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: ctimer_write private impure subroutine ctimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the CPU time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name procedure, public :: dtimer_start private impure subroutine dtimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: dtimer_stop private impure subroutine dtimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: dtimer_write private impure subroutine dtimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the elapsed time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name procedure, public :: mtimer_start private impure subroutine mtimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current MPI time value.\nThis value is used to calculate the MPI time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: mtimer_stop private impure subroutine mtimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the MPI time.\nOptionally, it can print a message along with the MPI time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: mtimer_write private impure subroutine mtimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the MPI time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name procedure, public :: otimer_start private impure subroutine otimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current OMP time value.\nThis value is used to calculate the OMP time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: otimer_stop private impure subroutine otimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the OMP time.\nOptionally, it can print a message along with the OMP time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: otimer_write private impure subroutine otimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the OMP time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name procedure, public :: timer_start private impure subroutine timer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this procedure, public :: timer_stop private impure subroutine timer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color procedure, public :: timer_write private impure subroutine timer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the elapsed time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name","tags":"","loc":"type/timer.html"},{"title":"to_seconds – ForTime","text":"private pure function to_seconds(values) result(seconds) Arguments Type Intent Optional Attributes Name integer, intent(in), dimension(8) :: values Return Value real(kind=rk) Called by proc~~to_seconds~~CalledByGraph proc~to_seconds to_seconds proc~dtimer_stop timer%dtimer_stop proc~dtimer_stop->proc~to_seconds program~example5 example5 program~example5->proc~dtimer_stop program~example6 example6 program~example6->proc~dtimer_stop program~test25 test25 program~test25->proc~dtimer_stop program~test26 test26 program~test26->proc~dtimer_stop program~test27 test27 program~test27->proc~dtimer_stop program~test28 test28 program~test28->proc~dtimer_stop program~test29 test29 program~test29->proc~dtimer_stop program~test30 test30 program~test30->proc~dtimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code pure function to_seconds ( values ) result ( seconds ) integer , dimension ( 8 ), intent ( in ) :: values real ( rk ) :: seconds seconds = real ( values ( 3 ), rk ) * 2 4.0_rk * 6 0.0_rk * 6 0.0_rk + & real ( values ( 5 ), rk ) * 6 0.0_rk * 6 0.0_rk + & real ( values ( 6 ), rk ) * 6 0.0_rk + & real ( values ( 7 ), rk ) + & real ( values ( 8 ), rk ) / 100 0.0_rk end function to_seconds","tags":"","loc":"proc/to_seconds.html"},{"title":"ctimer_start – ForTime","text":"private impure subroutine ctimer_start(this) Starts the timer by recording the current CPU time value.\nThis value is used to calculate the CPU time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Called by proc~~ctimer_start~~CalledByGraph proc~ctimer_start timer%ctimer_start program~example3 example3 program~example3->proc~ctimer_start program~example4 example4 program~example4->proc~ctimer_start program~test16 test16 program~test16->proc~ctimer_start program~test17 test17 program~test17->proc~ctimer_start program~test18 test18 program~test18->proc~ctimer_start program~test4 test4 program~test4->proc~ctimer_start program~test5 test5 program~test5->proc~ctimer_start program~test6 test6 program~test6->proc~ctimer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine ctimer_start ( this ) class ( timer ), intent ( inout ) :: this ! Start the timer call cpu_time ( this % cpu_start ) end subroutine ctimer_start","tags":"","loc":"proc/ctimer_start.html"},{"title":"ctimer_stop – ForTime","text":"private impure subroutine ctimer_stop(this, nloops, message, print, color) Stops the timer and calculates the CPU time.\nOptionally, it can print a message along with the CPU time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~ctimer_stop~~CallsGraph proc~ctimer_stop timer%ctimer_stop proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~ctimer_stop~~CalledByGraph proc~ctimer_stop timer%ctimer_stop program~example3 example3 program~example3->proc~ctimer_stop program~example4 example4 program~example4->proc~ctimer_stop program~test16 test16 program~test16->proc~ctimer_stop program~test17 test17 program~test17->proc~ctimer_stop program~test18 test18 program~test18->proc~ctimer_stop program~test4 test4 program~test4->proc~ctimer_stop program~test5 test5 program~test5->proc~ctimer_stop program~test6 test6 program~test6->proc~ctimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine ctimer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer call cpu_time ( this % cpu_end ) ! Calculate the elapsed CPU time this % cpu_elapsed = this % cpu_end - this % cpu_start ! Convert CPU time to seconds if (. not . present ( nloops )) this % cpu_time = this % cpu_elapsed if ( present ( nloops )) this % cpu_time = this % cpu_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"CPU time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % cpu_time , msg , color ) else call print_time ( this % cpu_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine ctimer_stop","tags":"","loc":"proc/ctimer_stop.html"},{"title":"ctimer_write – ForTime","text":"private impure subroutine ctimer_write(this, file_name) Writes the CPU time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~ctimer_write~~CalledByGraph proc~ctimer_write timer%ctimer_write program~example4 example4 program~example4->proc~ctimer_write program~test17 test17 program~test17->proc~ctimer_write program~test18 test18 program~test18->proc~ctimer_write program~test5 test5 program~test5->proc~ctimer_write program~test6 test6 program~test6->proc~ctimer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine ctimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the CPU time to the file write ( nunit , '(g0)' ) this % cpu_time ! Close the file close ( nunit ) end subroutine ctimer_write","tags":"","loc":"proc/ctimer_write.html"},{"title":"dtimer_start – ForTime","text":"private impure subroutine dtimer_start(this) Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Called by proc~~dtimer_start~~CalledByGraph proc~dtimer_start timer%dtimer_start program~example5 example5 program~example5->proc~dtimer_start program~example6 example6 program~example6->proc~dtimer_start program~test25 test25 program~test25->proc~dtimer_start program~test26 test26 program~test26->proc~dtimer_start program~test27 test27 program~test27->proc~dtimer_start program~test28 test28 program~test28->proc~dtimer_start program~test29 test29 program~test29->proc~dtimer_start program~test30 test30 program~test30->proc~dtimer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine dtimer_start ( this ) class ( timer ), intent ( inout ) :: this ! Start the timer call date_and_time ( values = this % values_start ) end subroutine dtimer_start","tags":"","loc":"proc/dtimer_start.html"},{"title":"dtimer_stop – ForTime","text":"private impure subroutine dtimer_stop(this, nloops, message, print, color) Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~dtimer_stop~~CallsGraph proc~dtimer_stop timer%dtimer_stop proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~dtimer_stop~~CalledByGraph proc~dtimer_stop timer%dtimer_stop program~example5 example5 program~example5->proc~dtimer_stop program~example6 example6 program~example6->proc~dtimer_stop program~test25 test25 program~test25->proc~dtimer_stop program~test26 test26 program~test26->proc~dtimer_stop program~test27 test27 program~test27->proc~dtimer_stop program~test28 test28 program~test28->proc~dtimer_stop program~test29 test29 program~test29->proc~dtimer_stop program~test30 test30 program~test30->proc~dtimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine dtimer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print real ( rk ) :: values_elapsed_sec character ( * ), intent ( in ), optional :: color ! Stop the timer call date_and_time ( values = this % values_end ) ! Calculate the elapsed processor ticks this % values_elapsed = this % values_end - this % values_start ! Convert processor ticks to seconds if (. not . present ( nloops )) & this % elapsed_dtime = to_seconds ( this % values_elapsed ) if ( present ( nloops )) & this % elapsed_dtime = to_seconds ( this % values_elapsed ) / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"Elapsed time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % elapsed_dtime , msg , color ) else call print_time ( this % elapsed_dtime , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine dtimer_stop","tags":"","loc":"proc/dtimer_stop.html"},{"title":"dtimer_write – ForTime","text":"private impure subroutine dtimer_write(this, file_name) Writes the elapsed time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~dtimer_write~~CalledByGraph proc~dtimer_write timer%dtimer_write program~example6 example6 program~example6->proc~dtimer_write program~test26 test26 program~test26->proc~dtimer_write program~test27 test27 program~test27->proc~dtimer_write program~test29 test29 program~test29->proc~dtimer_write program~test30 test30 program~test30->proc~dtimer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine dtimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the elapsed time to the file write ( nunit , '(g0)' ) this % elapsed_dtime ! Close the file close ( nunit ) end subroutine dtimer_write","tags":"","loc":"proc/dtimer_write.html"},{"title":"mtimer_start – ForTime","text":"private impure subroutine mtimer_start(this) Starts the timer by recording the current MPI time value.\nThis value is used to calculate the MPI time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Called by proc~~mtimer_start~~CalledByGraph proc~mtimer_start timer%mtimer_start program~test10 test10 program~test10->proc~mtimer_start program~test11 test11 program~test11->proc~mtimer_start program~test12 test12 program~test12->proc~mtimer_start program~test22 test22 program~test22->proc~mtimer_start program~test23 test23 program~test23->proc~mtimer_start program~test24 test24 program~test24->proc~mtimer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine mtimer_start ( this ) ! include 'mpif.h' class ( timer ), intent ( inout ) :: this interface function mpi_wtime () import rk real ( rk ) :: mpi_wtime end function mpi_wtime end interface ! Start the timer this % mpi_start = mpi_wtime () end subroutine mtimer_start","tags":"","loc":"proc/mtimer_start.html"},{"title":"mtimer_stop – ForTime","text":"private impure subroutine mtimer_stop(this, nloops, message, print, color) Stops the timer and calculates the MPI time.\nOptionally, it can print a message along with the MPI time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~mtimer_stop~~CallsGraph proc~mtimer_stop timer%mtimer_stop proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~mtimer_stop~~CalledByGraph proc~mtimer_stop timer%mtimer_stop program~test10 test10 program~test10->proc~mtimer_stop program~test11 test11 program~test11->proc~mtimer_stop program~test12 test12 program~test12->proc~mtimer_stop program~test22 test22 program~test22->proc~mtimer_stop program~test23 test23 program~test23->proc~mtimer_stop program~test24 test24 program~test24->proc~mtimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine mtimer_stop ( this , nloops , message , print , color ) ! include 'mpif.h' class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color interface function mpi_wtime () import rk real ( rk ) :: mpi_wtime end function mpi_wtime end interface ! Stop the timer this % mpi_end = mpi_wtime () ! Calculate the elapsed MPI time this % mpi_elapsed = this % mpi_end - this % mpi_start ! Convert MPI time to seconds if (. not . present ( nloops )) this % mpi_time = this % mpi_elapsed if ( present ( nloops )) this % mpi_time = this % mpi_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"MPI time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % mpi_time , msg , color ) else call print_time ( this % mpi_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine mtimer_stop","tags":"","loc":"proc/mtimer_stop.html"},{"title":"mtimer_write – ForTime","text":"private impure subroutine mtimer_write(this, file_name) Writes the MPI time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~mtimer_write~~CalledByGraph proc~mtimer_write timer%mtimer_write program~test11 test11 program~test11->proc~mtimer_write program~test12 test12 program~test12->proc~mtimer_write program~test23 test23 program~test23->proc~mtimer_write program~test24 test24 program~test24->proc~mtimer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine mtimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the MPI time to the file write ( nunit , '(g0)' ) this % mpi_time ! Close the file close ( nunit ) end subroutine mtimer_write","tags":"","loc":"proc/mtimer_write.html"},{"title":"otimer_start – ForTime","text":"private impure subroutine otimer_start(this) Uses omp_lib proc~~otimer_start~~UsesGraph proc~otimer_start timer%otimer_start omp_lib omp_lib proc~otimer_start->omp_lib Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Starts the timer by recording the current OMP time value.\nThis value is used to calculate the OMP time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Calls proc~~otimer_start~~CallsGraph proc~otimer_start timer%otimer_start omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~otimer_start~~CalledByGraph proc~otimer_start timer%otimer_start program~test19 test19 program~test19->proc~otimer_start program~test20 test20 program~test20->proc~otimer_start program~test21 test21 program~test21->proc~otimer_start program~test7 test7 program~test7->proc~otimer_start program~test8 test8 program~test8->proc~otimer_start program~test9 test9 program~test9->proc~otimer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine otimer_start ( this ) use omp_lib class ( timer ), intent ( inout ) :: this ! Start the timer this % omp_start = omp_get_wtime () end subroutine otimer_start","tags":"","loc":"proc/otimer_start.html"},{"title":"otimer_stop – ForTime","text":"private impure subroutine otimer_stop(this, nloops, message, print, color) Uses omp_lib proc~~otimer_stop~~UsesGraph proc~otimer_stop timer%otimer_stop omp_lib omp_lib proc~otimer_stop->omp_lib Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Stops the timer and calculates the OMP time.\nOptionally, it can print a message along with the OMP time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~otimer_stop~~CallsGraph proc~otimer_stop timer%otimer_stop omp_get_wtime omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~otimer_stop~~CalledByGraph proc~otimer_stop timer%otimer_stop program~test19 test19 program~test19->proc~otimer_stop program~test20 test20 program~test20->proc~otimer_stop program~test21 test21 program~test21->proc~otimer_stop program~test7 test7 program~test7->proc~otimer_stop program~test8 test8 program~test8->proc~otimer_stop program~test9 test9 program~test9->proc~otimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine otimer_stop ( this , nloops , message , print , color ) use omp_lib class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer this % omp_end = omp_get_wtime () ! Calculate the elapsed OMP time this % omp_elapsed = this % omp_end - this % omp_start ! Convert OMP time to seconds if (. not . present ( nloops )) this % omp_time = this % omp_elapsed if ( present ( nloops )) this % omp_time = this % omp_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"OMP time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % omp_time , msg , color ) else call print_time ( this % omp_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine otimer_stop","tags":"","loc":"proc/otimer_stop.html"},{"title":"otimer_write – ForTime","text":"private impure subroutine otimer_write(this, file_name) Uses omp_lib proc~~otimer_write~~UsesGraph proc~otimer_write timer%otimer_write omp_lib omp_lib proc~otimer_write->omp_lib Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Writes the OMP time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~otimer_write~~CalledByGraph proc~otimer_write timer%otimer_write program~test20 test20 program~test20->proc~otimer_write program~test21 test21 program~test21->proc~otimer_write program~test8 test8 program~test8->proc~otimer_write program~test9 test9 program~test9->proc~otimer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine otimer_write ( this , file_name ) use omp_lib class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the OMP time to the file write ( nunit , '(g0)' ) this % omp_time ! Close the file close ( nunit ) end subroutine otimer_write","tags":"","loc":"proc/otimer_write.html"},{"title":"print_time – ForTime","text":"private impure subroutine print_time(time, message, color) Uses face proc~~print_time~~UsesGraph proc~print_time print_time face face proc~print_time->face Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Arguments Type Intent Optional Attributes Name real(kind=rk), intent(in) :: time character(len=*), intent(in) :: message character(len=*), intent(in), optional :: color Calls proc~~print_time~~CallsGraph proc~print_time print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~print_time~~CalledByGraph proc~print_time print_time proc~ctimer_stop timer%ctimer_stop proc~ctimer_stop->proc~print_time proc~dtimer_stop timer%dtimer_stop proc~dtimer_stop->proc~print_time proc~mtimer_stop timer%mtimer_stop proc~mtimer_stop->proc~print_time proc~otimer_stop timer%otimer_stop proc~otimer_stop->proc~print_time proc~timer_stop timer%timer_stop proc~timer_stop->proc~print_time program~example1 example1 program~example1->proc~timer_stop program~example2 example2 program~example2->proc~timer_stop program~example3 example3 program~example3->proc~ctimer_stop program~example4 example4 program~example4->proc~ctimer_stop program~example5 example5 program~example5->proc~dtimer_stop program~example6 example6 program~example6->proc~dtimer_stop program~test1 test1 program~test1->proc~timer_stop program~test10 test10 program~test10->proc~mtimer_stop program~test11 test11 program~test11->proc~mtimer_stop program~test12 test12 program~test12->proc~mtimer_stop program~test13 test13 program~test13->proc~timer_stop program~test14 test14 program~test14->proc~timer_stop program~test15 test15 program~test15->proc~timer_stop program~test16 test16 program~test16->proc~ctimer_stop program~test17 test17 program~test17->proc~ctimer_stop program~test18 test18 program~test18->proc~ctimer_stop program~test19 test19 program~test19->proc~otimer_stop program~test2 test2 program~test2->proc~timer_stop program~test20 test20 program~test20->proc~otimer_stop program~test21 test21 program~test21->proc~otimer_stop program~test22 test22 program~test22->proc~mtimer_stop program~test23 test23 program~test23->proc~mtimer_stop program~test24 test24 program~test24->proc~mtimer_stop program~test25 test25 program~test25->proc~dtimer_stop program~test26 test26 program~test26->proc~dtimer_stop program~test27 test27 program~test27->proc~dtimer_stop program~test28 test28 program~test28->proc~dtimer_stop program~test29 test29 program~test29->proc~dtimer_stop program~test3 test3 program~test3->proc~timer_stop program~test30 test30 program~test30->proc~dtimer_stop program~test4 test4 program~test4->proc~ctimer_stop program~test5 test5 program~test5->proc~ctimer_stop program~test6 test6 program~test6->proc~ctimer_stop program~test7 test7 program~test7->proc~otimer_stop program~test8 test8 program~test8->proc~otimer_stop program~test9 test9 program~test9->proc~otimer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine print_time ( time , message , color ) use face real ( rk ), intent ( in ) :: time character ( * ), intent ( in ) :: message character ( * ), intent ( in ), optional :: color if ( present ( color )) then print '(A, F16.9, A)' , colorize ( trim ( message ), color_fg = trim ( color )), time , colorize ( \" [s]\" , color_fg = trim ( color )) else print '(A, F16.9, A)' , colorize ( trim ( message ), color_fg = 'blue' ), time , colorize ( \" [s]\" , color_fg = 'blue' ) end if end subroutine print_time","tags":"","loc":"proc/print_time.html"},{"title":"timer_start – ForTime","text":"private impure subroutine timer_start(this) Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this Called by proc~~timer_start~~CalledByGraph proc~timer_start timer%timer_start program~example1 example1 program~example1->proc~timer_start program~example2 example2 program~example2->proc~timer_start program~test1 test1 program~test1->proc~timer_start program~test13 test13 program~test13->proc~timer_start program~test14 test14 program~test14->proc~timer_start program~test15 test15 program~test15->proc~timer_start program~test2 test2 program~test2->proc~timer_start program~test3 test3 program~test3->proc~timer_start Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine timer_start ( this ) class ( timer ), intent ( inout ) :: this ! Get the processor clock rate call system_clock ( count_rate = this % clock_rate ) ! Start the timer call system_clock ( count = this % clock_start ) end subroutine timer_start","tags":"","loc":"proc/timer_start.html"},{"title":"timer_stop – ForTime","text":"private impure subroutine timer_stop(this, nloops, message, print, color) Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color Calls proc~~timer_stop~~CallsGraph proc~timer_stop timer%timer_stop proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Called by proc~~timer_stop~~CalledByGraph proc~timer_stop timer%timer_stop program~example1 example1 program~example1->proc~timer_stop program~example2 example2 program~example2->proc~timer_stop program~test1 test1 program~test1->proc~timer_stop program~test13 test13 program~test13->proc~timer_stop program~test14 test14 program~test14->proc~timer_stop program~test15 test15 program~test15->proc~timer_stop program~test2 test2 program~test2->proc~timer_stop program~test3 test3 program~test3->proc~timer_stop Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine timer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer call system_clock ( count = this % clock_end ) ! Calculate the elapsed processor ticks this % clock_elapsed = this % clock_end - this % clock_start ! Convert processor ticks to seconds if (. not . present ( nloops )) & this % elapsed_time = real ( this % clock_elapsed , kind = rk ) / real ( this % clock_rate , kind = rk ) if ( present ( nloops )) & this % elapsed_time = real ( this % clock_elapsed , kind = rk ) / real ( this % clock_rate , kind = rk ) / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"Elapsed time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % elapsed_time , msg , color ) else call print_time ( this % elapsed_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine timer_stop","tags":"","loc":"proc/timer_stop.html"},{"title":"timer_write – ForTime","text":"private impure subroutine timer_write(this, file_name) Writes the elapsed time to a file. Type Bound timer Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name Called by proc~~timer_write~~CalledByGraph proc~timer_write timer%timer_write program~example2 example2 program~example2->proc~timer_write program~test14 test14 program~test14->proc~timer_write program~test15 test15 program~test15->proc~timer_write program~test2 test2 program~test2->proc~timer_write program~test3 test3 program~test3->proc~timer_write Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code impure subroutine timer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the elapsed time to the file write ( nunit , '(g0)' ) this % elapsed_time ! Close the file close ( nunit ) end subroutine timer_write","tags":"","loc":"proc/timer_write.html"},{"title":"fortime – ForTime","text":"This module provides a timer object for measuring elapsed time.\nIt includes procedures for starting and stopping the timer, as well\nas calculating and printing the elapsed time in seconds. Uses kinds module~~fortime~~UsesGraph module~fortime fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Used by module~~fortime~~UsedByGraph module~fortime fortime program~example1 example1 program~example1->module~fortime program~example2 example2 program~example2->module~fortime program~example3 example3 program~example3->module~fortime program~example4 example4 program~example4->module~fortime program~example5 example5 program~example5->module~fortime program~example6 example6 program~example6->module~fortime program~test1 test1 program~test1->module~fortime program~test10 test10 program~test10->module~fortime program~test11 test11 program~test11->module~fortime program~test12 test12 program~test12->module~fortime program~test13 test13 program~test13->module~fortime program~test14 test14 program~test14->module~fortime program~test15 test15 program~test15->module~fortime program~test16 test16 program~test16->module~fortime program~test17 test17 program~test17->module~fortime program~test18 test18 program~test18->module~fortime program~test19 test19 program~test19->module~fortime program~test2 test2 program~test2->module~fortime program~test20 test20 program~test20->module~fortime program~test21 test21 program~test21->module~fortime program~test22 test22 program~test22->module~fortime program~test23 test23 program~test23->module~fortime program~test24 test24 program~test24->module~fortime program~test25 test25 program~test25->module~fortime program~test26 test26 program~test26->module~fortime program~test27 test27 program~test27->module~fortime program~test28 test28 program~test28->module~fortime program~test29 test29 program~test29->module~fortime program~test3 test3 program~test3->module~fortime program~test30 test30 program~test30->module~fortime program~test4 test4 program~test4->module~fortime program~test5 test5 program~test5->module~fortime program~test6 test6 program~test6->module~fortime program~test7 test7 program~test7->module~fortime program~test8 test8 program~test8->module~fortime program~test9 test9 program~test9->module~fortime Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Derived Types type, public :: timer Components Type Visibility Attributes Name Initial real(kind=rk), public :: cpu_time real(kind=rk), public :: elapsed_dtime real(kind=rk), public :: elapsed_time real(kind=rk), public :: mpi_time real(kind=rk), public :: omp_time integer, private :: clock_elapsed integer, private :: clock_end integer, private :: clock_rate integer, private :: clock_start real(kind=rk), private :: cpu_elapsed real(kind=rk), private :: cpu_end real(kind=rk), private :: cpu_start real(kind=rk), private :: mpi_elapsed real(kind=rk), private :: mpi_end real(kind=rk), private :: mpi_start real(kind=rk), private :: omp_elapsed real(kind=rk), private :: omp_end real(kind=rk), private :: omp_start integer, private, dimension(8) :: values_elapsed integer, private, dimension(8) :: values_end integer, private, dimension(8) :: values_start Type-Bound Procedures procedure, public :: ctimer_start procedure, public :: ctimer_stop procedure, public :: ctimer_write procedure, public :: dtimer_start procedure, public :: dtimer_stop procedure, public :: dtimer_write procedure, public :: mtimer_start procedure, public :: mtimer_stop procedure, public :: mtimer_write procedure, public :: otimer_start procedure, public :: otimer_stop procedure, public :: otimer_write procedure, public :: timer_start procedure, public :: timer_stop procedure, public :: timer_write Functions private pure function to_seconds (values) result(seconds) Author Seyed Ali Ghasemi License BSD 3-Clause Arguments Type Intent Optional Attributes Name integer, intent(in), dimension(8) :: values Return Value real(kind=rk) Subroutines private impure subroutine ctimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current CPU time value.\nThis value is used to calculate the CPU time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine ctimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the CPU time.\nOptionally, it can print a message along with the CPU time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine ctimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the CPU time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name private impure subroutine dtimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine dtimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine dtimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the elapsed time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name private impure subroutine mtimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current MPI time value.\nThis value is used to calculate the MPI time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine mtimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the MPI time.\nOptionally, it can print a message along with the MPI time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine mtimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the MPI time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name private impure subroutine otimer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current OMP time value.\nThis value is used to calculate the OMP time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine otimer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the OMP time.\nOptionally, it can print a message along with the OMP time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine otimer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the OMP time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name private impure subroutine print_time (time, message, color) Author Seyed Ali Ghasemi License BSD 3-Clause Arguments Type Intent Optional Attributes Name real(kind=rk), intent(in) :: time character(len=*), intent(in) :: message character(len=*), intent(in), optional :: color private impure subroutine timer_start (this) Author Seyed Ali Ghasemi License BSD 3-Clause Starts the timer by recording the current processor clock value.\nThis value is used to calculate the elapsed time later. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this private impure subroutine timer_stop (this, nloops, message, print, color) Author Seyed Ali Ghasemi License BSD 3-Clause Stops the timer and calculates the elapsed time.\nOptionally, it can print a message along with the elapsed time. Arguments Type Intent Optional Attributes Name class( timer ), intent(inout) :: this integer, intent(in), optional :: nloops character(len=*), intent(in), optional :: message logical, intent(in), optional :: print character(len=*), intent(in), optional :: color private impure subroutine timer_write (this, file_name) Author Seyed Ali Ghasemi License BSD 3-Clause Writes the elapsed time to a file. Arguments Type Intent Optional Attributes Name class( timer ), intent(in) :: this character(len=*), intent(in) :: file_name","tags":"","loc":"module/fortime.html"},{"title":"test23 – ForTime","text":"Uses forunittest fortime kinds program~~test23~~UsesGraph program~test23 test23 forunittest forunittest program~test23->forunittest kinds kinds program~test23->kinds module~fortime fortime program~test23->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test23~~CallsGraph program~test23 test23 check check program~test23->check mpi_finalize mpi_finalize program~test23->mpi_finalize mpi_init mpi_init program~test23->mpi_init proc~mtimer_start timer%mtimer_start program~test23->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test23->proc~mtimer_stop proc~mtimer_write timer%mtimer_write program~test23->proc~mtimer_write proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test23 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( nloops = nloops , message = 'MPI time:' , print = . false .) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test23_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test23' ) #endif end program test23","tags":"","loc":"program/test23.html"},{"title":"test26 – ForTime","text":"Uses forunittest fortime kinds program~~test26~~UsesGraph program~test26 test26 forunittest forunittest program~test26->forunittest kinds kinds program~test26->kinds module~fortime fortime program~test26->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test26~~CallsGraph program~test26 test26 check check program~test26->check proc~dtimer_start timer%dtimer_start program~test26->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test26->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~test26->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test26 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' ) call t % dtimer_write ( 'test/test26_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test26' ) end program test26","tags":"","loc":"program/test26.html"},{"title":"test21 – ForTime","text":"Uses forunittest fortime kinds program~~test21~~UsesGraph program~test21 test21 forunittest forunittest program~test21->forunittest kinds kinds program~test21->kinds module~fortime fortime program~test21->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test21~~CallsGraph program~test21 test21 check check program~test21->check proc~otimer_start timer%otimer_start program~test21->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test21->proc~otimer_stop proc~otimer_write timer%otimer_write program~test21->proc~otimer_write omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test21 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( message = 'OMP time:' , print = . false .) call t % otimer_write ( 'test/test21_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test21' ) #endif end program test21","tags":"","loc":"program/test21.html"},{"title":"test6 – ForTime","text":"Uses fortime kinds program~~test6~~UsesGraph program~test6 test6 kinds kinds program~test6->kinds module~fortime fortime program~test6->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test6~~CallsGraph program~test6 test6 proc~ctimer_start timer%ctimer_start program~test6->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test6->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~test6->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program test6 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( message = 'CPU time:' ) call t % ctimer_write ( 'test/test6_ctimes' ) ! Optionally, write the elapsed time to a file end program test6","tags":"","loc":"program/test6.html"},{"title":"test9 – ForTime","text":"Uses forunittest fortime kinds program~~test9~~UsesGraph program~test9 test9 forunittest forunittest program~test9->forunittest kinds kinds program~test9->kinds module~fortime fortime program~test9->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test9~~CallsGraph program~test9 test9 check check program~test9->check proc~otimer_start timer%otimer_start program~test9->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test9->proc~otimer_stop proc~otimer_write timer%otimer_write program~test9->proc~otimer_write omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test9 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( message = 'OMP time:' ) call t % otimer_write ( 'test/test9_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test9' ) #endif end program test9","tags":"","loc":"program/test9.html"},{"title":"test8 – ForTime","text":"Uses forunittest fortime kinds program~~test8~~UsesGraph program~test8 test8 forunittest forunittest program~test8->forunittest kinds kinds program~test8->kinds module~fortime fortime program~test8->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test8~~CallsGraph program~test8 test8 check check program~test8->check proc~otimer_start timer%otimer_start program~test8->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test8->proc~otimer_stop proc~otimer_write timer%otimer_write program~test8->proc~otimer_write omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test8 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( nloops = nloops , message = 'OMP time:' ) call t % otimer_write ( 'test/test8_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test8' ) #endif end program test8","tags":"","loc":"program/test8.html"},{"title":"example2 – ForTime","text":"Uses fortime program~~example2~~UsesGraph program~example2 example2 module~fortime fortime program~example2->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example2~~CallsGraph program~example2 example2 proc~timer_start timer%timer_start program~example2->proc~timer_start proc~timer_stop timer%timer_stop program~example2->proc~timer_stop proc~timer_write timer%timer_write program~example2->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program example2 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . true ., color = 'green' ) ! nloops, message, print and color are optional. call t % timer_write ( 'example/example2_etimes' ) ! Optionally, write the elapsed time to a file end program example2","tags":"","loc":"program/example2.html"},{"title":"test3 – ForTime","text":"Uses forunittest fortime kinds program~~test3~~UsesGraph program~test3 test3 forunittest forunittest program~test3->forunittest kinds kinds program~test3->kinds module~fortime fortime program~test3->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test3~~CallsGraph program~test3 test3 check check program~test3->check proc~timer_start timer%timer_start program~test3->proc~timer_start proc~timer_stop timer%timer_stop program~test3->proc~timer_stop proc~timer_write timer%timer_write program~test3->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test3 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( message = 'Elapsed time:' ) call t % timer_write ( 'test/test3_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test3' ) end program test3","tags":"","loc":"program/test3.html"},{"title":"test22 – ForTime","text":"Uses forunittest fortime kinds program~~test22~~UsesGraph program~test22 test22 forunittest forunittest program~test22->forunittest kinds kinds program~test22->kinds module~fortime fortime program~test22->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test22~~CallsGraph program~test22 test22 check check program~test22->check mpi_finalize mpi_finalize program~test22->mpi_finalize mpi_init mpi_init program~test22->mpi_init proc~mtimer_start timer%mtimer_start program~test22->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test22->proc~mtimer_stop proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr type( timer ) :: t type(unit_test) :: ut Source Code program test22 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: ierr #if defined(USE_MPI) ! MPI time call mpi_init ( ierr ) call t % mtimer_start () call sleep ( 1 ) ! Perform operations here call t % mtimer_stop ( print = . false .) call mpi_finalize ( ierr ) call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test22' ) #endif end program test22","tags":"","loc":"program/test22.html"},{"title":"example6 – ForTime","text":"Uses fortime program~~example6~~UsesGraph program~example6 example6 module~fortime fortime program~example6->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example6~~CallsGraph program~example6 example6 proc~dtimer_start timer%dtimer_start program~example6->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~example6->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~example6->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program example6 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . true ., color = 'red' ) ! nloops, message, print and color are optional. call t % dtimer_write ( 'example/example6_etimes' ) ! Optionally, write the elapsed time to a file end program example6","tags":"","loc":"program/example6.html"},{"title":"test18 – ForTime","text":"Uses fortime kinds program~~test18~~UsesGraph program~test18 test18 kinds kinds program~test18->kinds module~fortime fortime program~test18->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test18~~CallsGraph program~test18 test18 proc~ctimer_start timer%ctimer_start program~test18->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test18->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~test18->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program test18 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( message = 'CPU time:' , print = . false .) call t % ctimer_write ( 'test/test18_ctimes' ) ! Optionally, write the elapsed time to a file end program test18","tags":"","loc":"program/test18.html"},{"title":"test28 – ForTime","text":"Uses forunittest fortime kinds program~~test28~~UsesGraph program~test28 test28 forunittest forunittest program~test28->forunittest kinds kinds program~test28->kinds module~fortime fortime program~test28->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test28~~CallsGraph program~test28 test28 check check program~test28->check proc~dtimer_start timer%dtimer_start program~test28->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test28->proc~dtimer_stop proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test28 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop ( print = . false .) call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test28' ) end program test28","tags":"","loc":"program/test28.html"},{"title":"test5 – ForTime","text":"Uses fortime kinds program~~test5~~UsesGraph program~test5 test5 kinds kinds program~test5->kinds module~fortime fortime program~test5->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test5~~CallsGraph program~test5 test5 proc~ctimer_start timer%ctimer_start program~test5->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test5->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~test5->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program test5 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' ) call t % ctimer_write ( 'test/test5_ctimes' ) ! Optionally, write the elapsed time to a file end program test5","tags":"","loc":"program/test5.html"},{"title":"test4 – ForTime","text":"Uses fortime kinds program~~test4~~UsesGraph program~test4 test4 kinds kinds program~test4->kinds module~fortime fortime program~test4->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test4~~CallsGraph program~test4 test4 proc~ctimer_start timer%ctimer_start program~test4->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test4->proc~ctimer_stop proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program test4 use kinds use fortime implicit none type ( timer ) :: t ! CPU time call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop () end program test4","tags":"","loc":"program/test4.html"},{"title":"test19 – ForTime","text":"Uses forunittest fortime kinds program~~test19~~UsesGraph program~test19 test19 forunittest forunittest program~test19->forunittest kinds kinds program~test19->kinds module~fortime fortime program~test19->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test19~~CallsGraph program~test19 test19 check check program~test19->check proc~otimer_start timer%otimer_start program~test19->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test19->proc~otimer_stop omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test19 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut #if defined(USE_OMP) ! OMP time call t % otimer_start () call sleep ( 1 ) ! Perform operations here call t % otimer_stop ( print = . false .) call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test19' ) #endif end program test19","tags":"","loc":"program/test19.html"},{"title":"test10 – ForTime","text":"Uses forunittest fortime kinds program~~test10~~UsesGraph program~test10 test10 forunittest forunittest program~test10->forunittest kinds kinds program~test10->kinds module~fortime fortime program~test10->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test10~~CallsGraph program~test10 test10 check check program~test10->check mpi_finalize mpi_finalize program~test10->mpi_finalize mpi_init mpi_init program~test10->mpi_init proc~mtimer_start timer%mtimer_start program~test10->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test10->proc~mtimer_stop proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr type( timer ) :: t type(unit_test) :: ut Source Code program test10 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: ierr #if defined(USE_MPI) ! MPI time call mpi_init ( ierr ) call t % mtimer_start () call sleep ( 1 ) ! Perform operations here call t % mtimer_stop () call mpi_finalize ( ierr ) call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test10' ) #endif end program test10","tags":"","loc":"program/test10.html"},{"title":"test11 – ForTime","text":"Uses forunittest fortime kinds program~~test11~~UsesGraph program~test11 test11 forunittest forunittest program~test11->forunittest kinds kinds program~test11->kinds module~fortime fortime program~test11->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test11~~CallsGraph program~test11 test11 check check program~test11->check mpi_finalize mpi_finalize program~test11->mpi_finalize mpi_init mpi_init program~test11->mpi_init proc~mtimer_start timer%mtimer_start program~test11->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test11->proc~mtimer_stop proc~mtimer_write timer%mtimer_write program~test11->proc~mtimer_write proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test11 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( nloops = nloops , message = 'MPI time:' ) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test11_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test11' ) #endif end program test11","tags":"","loc":"program/test11.html"},{"title":"test25 – ForTime","text":"Uses forunittest fortime kinds program~~test25~~UsesGraph program~test25 test25 forunittest forunittest program~test25->forunittest kinds kinds program~test25->kinds module~fortime fortime program~test25->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test25~~CallsGraph program~test25 test25 check check program~test25->check proc~dtimer_start timer%dtimer_start program~test25->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test25->proc~dtimer_stop proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test25 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop () call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test25' ) end program test25","tags":"","loc":"program/test25.html"},{"title":"test16 – ForTime","text":"Uses fortime kinds program~~test16~~UsesGraph program~test16 test16 kinds kinds program~test16->kinds module~fortime fortime program~test16->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test16~~CallsGraph program~test16 test16 proc~ctimer_start timer%ctimer_start program~test16->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test16->proc~ctimer_stop proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program test16 use kinds use fortime implicit none type ( timer ) :: t ! CPU time call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop ( print = . false .) end program test16","tags":"","loc":"program/test16.html"},{"title":"test14 – ForTime","text":"Uses forunittest fortime kinds program~~test14~~UsesGraph program~test14 test14 forunittest forunittest program~test14->forunittest kinds kinds program~test14->kinds module~fortime fortime program~test14->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test14~~CallsGraph program~test14 test14 check check program~test14->check proc~timer_start timer%timer_start program~test14->proc~timer_start proc~timer_stop timer%timer_stop program~test14->proc~timer_stop proc~timer_write timer%timer_write program~test14->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test14 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . false .) call t % timer_write ( 'test/test14_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test14' ) end program test14","tags":"","loc":"program/test14.html"},{"title":"test7 – ForTime","text":"Uses forunittest fortime kinds program~~test7~~UsesGraph program~test7 test7 forunittest forunittest program~test7->forunittest kinds kinds program~test7->kinds module~fortime fortime program~test7->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test7~~CallsGraph program~test7 test7 check check program~test7->check proc~otimer_start timer%otimer_start program~test7->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test7->proc~otimer_stop omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test7 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut #if defined(USE_OMP) ! OMP time call t % otimer_start () call sleep ( 1 ) ! Perform operations here call t % otimer_stop () call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test7' ) #endif end program test7","tags":"","loc":"program/test7.html"},{"title":"test20 – ForTime","text":"Uses forunittest fortime kinds program~~test20~~UsesGraph program~test20 test20 forunittest forunittest program~test20->forunittest kinds kinds program~test20->kinds module~fortime fortime program~test20->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test20~~CallsGraph program~test20 test20 check check program~test20->check proc~otimer_start timer%otimer_start program~test20->proc~otimer_start proc~otimer_stop timer%otimer_stop program~test20->proc~otimer_stop proc~otimer_write timer%otimer_write program~test20->proc~otimer_write omp_get_wtime omp_get_wtime proc~otimer_start->omp_get_wtime proc~otimer_stop->omp_get_wtime proc~print_time print_time proc~otimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test20 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( nloops = nloops , message = 'OMP time:' , print = . false .) call t % otimer_write ( 'test/test20_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test20' ) #endif end program test20","tags":"","loc":"program/test20.html"},{"title":"example4 – ForTime","text":"Uses fortime program~~example4~~UsesGraph program~example4 example4 module~fortime fortime program~example4->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example4~~CallsGraph program~example4 example4 proc~ctimer_start timer%ctimer_start program~example4->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~example4->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~example4->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program example4 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' , print = . true ., color = 'yellow' ) ! nloops, message, print and color are optional. call t % ctimer_write ( 'example/example4_ctimes' ) ! Optionally, write the elapsed time to a file end program example4","tags":"","loc":"program/example4.html"},{"title":"test30 – ForTime","text":"Uses forunittest fortime kinds program~~test30~~UsesGraph program~test30 test30 forunittest forunittest program~test30->forunittest kinds kinds program~test30->kinds module~fortime fortime program~test30->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test30~~CallsGraph program~test30 test30 check check program~test30->check proc~dtimer_start timer%dtimer_start program~test30->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test30->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~test30->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test30 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( message = 'Elapsed time:' , print = . false .) call t % dtimer_write ( 'test/test30_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test30' ) end program test30","tags":"","loc":"program/test30.html"},{"title":"test2 – ForTime","text":"Uses forunittest fortime kinds program~~test2~~UsesGraph program~test2 test2 forunittest forunittest program~test2->forunittest kinds kinds program~test2->kinds module~fortime fortime program~test2->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test2~~CallsGraph program~test2 test2 check check program~test2->check proc~timer_start timer%timer_start program~test2->proc~timer_start proc~timer_stop timer%timer_stop program~test2->proc~timer_stop proc~timer_write timer%timer_write program~test2->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test2 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' ) call t % timer_write ( 'test/test2_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test2' ) end program test2","tags":"","loc":"program/test2.html"},{"title":"test15 – ForTime","text":"Uses forunittest fortime kinds program~~test15~~UsesGraph program~test15 test15 forunittest forunittest program~test15->forunittest kinds kinds program~test15->kinds module~fortime fortime program~test15->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test15~~CallsGraph program~test15 test15 check check program~test15->check proc~timer_start timer%timer_start program~test15->proc~timer_start proc~timer_stop timer%timer_stop program~test15->proc~timer_stop proc~timer_write timer%timer_write program~test15->proc~timer_write proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test15 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( message = 'Elapsed time:' , print = . false .) call t % timer_write ( 'test/test15_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test15' ) end program test15","tags":"","loc":"program/test15.html"},{"title":"test29 – ForTime","text":"Uses forunittest fortime kinds program~~test29~~UsesGraph program~test29 test29 forunittest forunittest program~test29->forunittest kinds kinds program~test29->kinds module~fortime fortime program~test29->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test29~~CallsGraph program~test29 test29 check check program~test29->check proc~dtimer_start timer%dtimer_start program~test29->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test29->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~test29->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test29 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . false .) call t % dtimer_write ( 'test/test29_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test29' ) end program test29","tags":"","loc":"program/test29.html"},{"title":"test27 – ForTime","text":"Uses forunittest fortime kinds program~~test27~~UsesGraph program~test27 test27 forunittest forunittest program~test27->forunittest kinds kinds program~test27->kinds module~fortime fortime program~test27->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test27~~CallsGraph program~test27 test27 check check program~test27->check proc~dtimer_start timer%dtimer_start program~test27->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~test27->proc~dtimer_stop proc~dtimer_write timer%dtimer_write program~test27->proc~dtimer_write proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test27 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( message = 'Elapsed time:' ) call t % dtimer_write ( 'test/test27_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test27' ) end program test27","tags":"","loc":"program/test27.html"},{"title":"example1 – ForTime","text":"Uses fortime program~~example1~~UsesGraph program~example1 example1 module~fortime fortime program~example1->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example1~~CallsGraph program~example1 example1 proc~timer_start timer%timer_start program~example1->proc~timer_start proc~timer_stop timer%timer_stop program~example1->proc~timer_stop proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program example1 use fortime implicit none type ( timer ) :: t call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop () end program example1","tags":"","loc":"program/example1.html"},{"title":"test12 – ForTime","text":"Uses forunittest fortime kinds program~~test12~~UsesGraph program~test12 test12 forunittest forunittest program~test12->forunittest kinds kinds program~test12->kinds module~fortime fortime program~test12->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test12~~CallsGraph program~test12 test12 check check program~test12->check mpi_finalize mpi_finalize program~test12->mpi_finalize mpi_init mpi_init program~test12->mpi_init proc~mtimer_start timer%mtimer_start program~test12->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test12->proc~mtimer_stop proc~mtimer_write timer%mtimer_write program~test12->proc~mtimer_write proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test12 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( message = 'MPI time:' ) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test12_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test12' ) #endif end program test12","tags":"","loc":"program/test12.html"},{"title":"test24 – ForTime","text":"Uses forunittest fortime kinds program~~test24~~UsesGraph program~test24 test24 forunittest forunittest program~test24->forunittest kinds kinds program~test24->kinds module~fortime fortime program~test24->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test24~~CallsGraph program~test24 test24 check check program~test24->check mpi_finalize mpi_finalize program~test24->mpi_finalize mpi_init mpi_init program~test24->mpi_init proc~mtimer_start timer%mtimer_start program~test24->proc~mtimer_start proc~mtimer_stop timer%mtimer_stop program~test24->proc~mtimer_stop proc~mtimer_write timer%mtimer_write program~test24->proc~mtimer_write proc~print_time print_time proc~mtimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: ierr integer :: nl integer :: nloops = 3 type( timer ) :: t type(unit_test) :: ut Source Code program test24 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( message = 'MPI time:' , print = . false .) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test24_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test24' ) #endif end program test24","tags":"","loc":"program/test24.html"},{"title":"test1 – ForTime","text":"Uses forunittest fortime kinds program~~test1~~UsesGraph program~test1 test1 forunittest forunittest program~test1->forunittest kinds kinds program~test1->kinds module~fortime fortime program~test1->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test1~~CallsGraph program~test1 test1 check check program~test1->check proc~timer_start timer%timer_start program~test1->proc~timer_start proc~timer_stop timer%timer_stop program~test1->proc~timer_stop proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test1 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop () call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test1' ) end program test1","tags":"","loc":"program/test1.html"},{"title":"test17 – ForTime","text":"Uses fortime kinds program~~test17~~UsesGraph program~test17 test17 kinds kinds program~test17->kinds module~fortime fortime program~test17->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test17~~CallsGraph program~test17 test17 proc~ctimer_start timer%ctimer_start program~test17->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~test17->proc~ctimer_stop proc~ctimer_write timer%ctimer_write program~test17->proc~ctimer_write proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial integer :: nl integer :: nloops = 3 type( timer ) :: t Source Code program test17 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' , print = . false .) call t % ctimer_write ( 'test/test17_ctimes' ) ! Optionally, write the elapsed time to a file end program test17","tags":"","loc":"program/test17.html"},{"title":"test13 – ForTime","text":"Uses forunittest fortime kinds program~~test13~~UsesGraph program~test13 test13 forunittest forunittest program~test13->forunittest kinds kinds program~test13->kinds module~fortime fortime program~test13->module~fortime module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~test13~~CallsGraph program~test13 test13 check check program~test13->check proc~timer_start timer%timer_start program~test13->proc~timer_start proc~timer_stop timer%timer_stop program~test13->proc~timer_stop proc~print_time print_time proc~timer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t type(unit_test) :: ut Source Code program test13 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop ( print = . false .) call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test13' ) end program test13","tags":"","loc":"program/test13.html"},{"title":"example3 – ForTime","text":"Uses fortime program~~example3~~UsesGraph program~example3 example3 module~fortime fortime program~example3->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example3~~CallsGraph program~example3 example3 proc~ctimer_start timer%ctimer_start program~example3->proc~ctimer_start proc~ctimer_stop timer%ctimer_stop program~example3->proc~ctimer_stop proc~print_time print_time proc~ctimer_stop->proc~print_time colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program example3 use fortime implicit none type ( timer ) :: t call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop () end program example3","tags":"","loc":"program/example3.html"},{"title":"example5 – ForTime","text":"Uses fortime program~~example5~~UsesGraph program~example5 example5 module~fortime fortime program~example5->module~fortime kinds kinds module~fortime->kinds Help Graph Key Nodes of different colours represent the following: Graph Key Module Module Submodule Submodule Subroutine Subroutine Function Function Program Program This Page's Entity This Page's Entity Solid arrows point from a submodule to the (sub)module which it is\ndescended from. Dashed arrows point from a module or program unit to \nmodules which it uses. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Calls program~~example5~~CallsGraph program~example5 example5 proc~dtimer_start timer%dtimer_start program~example5->proc~dtimer_start proc~dtimer_stop timer%dtimer_stop program~example5->proc~dtimer_stop proc~print_time print_time proc~dtimer_stop->proc~print_time proc~to_seconds to_seconds proc~dtimer_stop->proc~to_seconds colorize colorize proc~print_time->colorize Help Graph Key Nodes of different colours represent the following: Graph Key Subroutine Subroutine Function Function Interface Interface Type Bound Procedure Type Bound Procedure Unknown Procedure Type Unknown Procedure Type Program Program This Page's Entity This Page's Entity Solid arrows point from a procedure to one which it calls. Dashed \narrows point from an interface to procedures which implement that interface.\nThis could include the module procedures in a generic interface or the\nimplementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Variables Type Attributes Name Initial type( timer ) :: t Source Code program example5 use fortime implicit none type ( timer ) :: t call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop () end program example5","tags":"","loc":"program/example5.html"},{"title":"test23.f90 – ForTime","text":"This file depends on sourcefile~~test23.f90~~EfferentGraph sourcefile~test23.f90 test23.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test23.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test23 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( nloops = nloops , message = 'MPI time:' , print = . false .) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test23_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test23' ) #endif end program test23","tags":"","loc":"sourcefile/test23.f90.html"},{"title":"test26.f90 – ForTime","text":"This file depends on sourcefile~~test26.f90~~EfferentGraph sourcefile~test26.f90 test26.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test26.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test26 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' ) call t % dtimer_write ( 'test/test26_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test26' ) end program test26","tags":"","loc":"sourcefile/test26.f90.html"},{"title":"test21.f90 – ForTime","text":"This file depends on sourcefile~~test21.f90~~EfferentGraph sourcefile~test21.f90 test21.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test21.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test21 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( message = 'OMP time:' , print = . false .) call t % otimer_write ( 'test/test21_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test21' ) #endif end program test21","tags":"","loc":"sourcefile/test21.f90.html"},{"title":"test6.f90 – ForTime","text":"This file depends on sourcefile~~test6.f90~~EfferentGraph sourcefile~test6.f90 test6.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test6.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test6 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( message = 'CPU time:' ) call t % ctimer_write ( 'test/test6_ctimes' ) ! Optionally, write the elapsed time to a file end program test6","tags":"","loc":"sourcefile/test6.f90.html"},{"title":"test9.f90 – ForTime","text":"This file depends on sourcefile~~test9.f90~~EfferentGraph sourcefile~test9.f90 test9.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test9.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test9 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( message = 'OMP time:' ) call t % otimer_write ( 'test/test9_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test9' ) #endif end program test9","tags":"","loc":"sourcefile/test9.f90.html"},{"title":"test8.f90 – ForTime","text":"This file depends on sourcefile~~test8.f90~~EfferentGraph sourcefile~test8.f90 test8.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test8.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test8 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( nloops = nloops , message = 'OMP time:' ) call t % otimer_write ( 'test/test8_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test8' ) #endif end program test8","tags":"","loc":"sourcefile/test8.f90.html"},{"title":"example2.f90 – ForTime","text":"This file depends on sourcefile~~example2.f90~~EfferentGraph sourcefile~example2.f90 example2.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example2.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example2 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . true ., color = 'green' ) ! nloops, message, print and color are optional. call t % timer_write ( 'example/example2_etimes' ) ! Optionally, write the elapsed time to a file end program example2","tags":"","loc":"sourcefile/example2.f90.html"},{"title":"test3.f90 – ForTime","text":"This file depends on sourcefile~~test3.f90~~EfferentGraph sourcefile~test3.f90 test3.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test3.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test3 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( message = 'Elapsed time:' ) call t % timer_write ( 'test/test3_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test3' ) end program test3","tags":"","loc":"sourcefile/test3.f90.html"},{"title":"test22.f90 – ForTime","text":"This file depends on sourcefile~~test22.f90~~EfferentGraph sourcefile~test22.f90 test22.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test22.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test22 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: ierr #if defined(USE_MPI) ! MPI time call mpi_init ( ierr ) call t % mtimer_start () call sleep ( 1 ) ! Perform operations here call t % mtimer_stop ( print = . false .) call mpi_finalize ( ierr ) call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test22' ) #endif end program test22","tags":"","loc":"sourcefile/test22.f90.html"},{"title":"example6.f90 – ForTime","text":"This file depends on sourcefile~~example6.f90~~EfferentGraph sourcefile~example6.f90 example6.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example6.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example6 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . true ., color = 'red' ) ! nloops, message, print and color are optional. call t % dtimer_write ( 'example/example6_etimes' ) ! Optionally, write the elapsed time to a file end program example6","tags":"","loc":"sourcefile/example6.f90.html"},{"title":"test18.f90 – ForTime","text":"This file depends on sourcefile~~test18.f90~~EfferentGraph sourcefile~test18.f90 test18.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test18.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test18 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( message = 'CPU time:' , print = . false .) call t % ctimer_write ( 'test/test18_ctimes' ) ! Optionally, write the elapsed time to a file end program test18","tags":"","loc":"sourcefile/test18.f90.html"},{"title":"test28.f90 – ForTime","text":"This file depends on sourcefile~~test28.f90~~EfferentGraph sourcefile~test28.f90 test28.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test28.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test28 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop ( print = . false .) call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test28' ) end program test28","tags":"","loc":"sourcefile/test28.f90.html"},{"title":"fortime.f90 – ForTime","text":"Files dependent on this one sourcefile~~fortime.f90~~AfferentGraph sourcefile~fortime.f90 fortime.f90 sourcefile~example1.f90 example1.f90 sourcefile~example1.f90->sourcefile~fortime.f90 sourcefile~example2.f90 example2.f90 sourcefile~example2.f90->sourcefile~fortime.f90 sourcefile~example3.f90 example3.f90 sourcefile~example3.f90->sourcefile~fortime.f90 sourcefile~example4.f90 example4.f90 sourcefile~example4.f90->sourcefile~fortime.f90 sourcefile~example5.f90 example5.f90 sourcefile~example5.f90->sourcefile~fortime.f90 sourcefile~example6.f90 example6.f90 sourcefile~example6.f90->sourcefile~fortime.f90 sourcefile~test1.f90 test1.f90 sourcefile~test1.f90->sourcefile~fortime.f90 sourcefile~test10.f90 test10.f90 sourcefile~test10.f90->sourcefile~fortime.f90 sourcefile~test11.f90 test11.f90 sourcefile~test11.f90->sourcefile~fortime.f90 sourcefile~test12.f90 test12.f90 sourcefile~test12.f90->sourcefile~fortime.f90 sourcefile~test13.f90 test13.f90 sourcefile~test13.f90->sourcefile~fortime.f90 sourcefile~test14.f90 test14.f90 sourcefile~test14.f90->sourcefile~fortime.f90 sourcefile~test15.f90 test15.f90 sourcefile~test15.f90->sourcefile~fortime.f90 sourcefile~test16.f90 test16.f90 sourcefile~test16.f90->sourcefile~fortime.f90 sourcefile~test17.f90 test17.f90 sourcefile~test17.f90->sourcefile~fortime.f90 sourcefile~test18.f90 test18.f90 sourcefile~test18.f90->sourcefile~fortime.f90 sourcefile~test19.f90 test19.f90 sourcefile~test19.f90->sourcefile~fortime.f90 sourcefile~test2.f90 test2.f90 sourcefile~test2.f90->sourcefile~fortime.f90 sourcefile~test20.f90 test20.f90 sourcefile~test20.f90->sourcefile~fortime.f90 sourcefile~test21.f90 test21.f90 sourcefile~test21.f90->sourcefile~fortime.f90 sourcefile~test22.f90 test22.f90 sourcefile~test22.f90->sourcefile~fortime.f90 sourcefile~test23.f90 test23.f90 sourcefile~test23.f90->sourcefile~fortime.f90 sourcefile~test24.f90 test24.f90 sourcefile~test24.f90->sourcefile~fortime.f90 sourcefile~test25.f90 test25.f90 sourcefile~test25.f90->sourcefile~fortime.f90 sourcefile~test26.f90 test26.f90 sourcefile~test26.f90->sourcefile~fortime.f90 sourcefile~test27.f90 test27.f90 sourcefile~test27.f90->sourcefile~fortime.f90 sourcefile~test28.f90 test28.f90 sourcefile~test28.f90->sourcefile~fortime.f90 sourcefile~test29.f90 test29.f90 sourcefile~test29.f90->sourcefile~fortime.f90 sourcefile~test3.f90 test3.f90 sourcefile~test3.f90->sourcefile~fortime.f90 sourcefile~test30.f90 test30.f90 sourcefile~test30.f90->sourcefile~fortime.f90 sourcefile~test4.f90 test4.f90 sourcefile~test4.f90->sourcefile~fortime.f90 sourcefile~test5.f90 test5.f90 sourcefile~test5.f90->sourcefile~fortime.f90 sourcefile~test6.f90 test6.f90 sourcefile~test6.f90->sourcefile~fortime.f90 sourcefile~test7.f90 test7.f90 sourcefile~test7.f90->sourcefile~fortime.f90 sourcefile~test8.f90 test8.f90 sourcefile~test8.f90->sourcefile~fortime.f90 sourcefile~test9.f90 test9.f90 sourcefile~test9.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code !> This module provides a timer object for measuring elapsed time. !> It includes procedures for starting and stopping the timer, as well !> as calculating and printing the elapsed time in seconds. module fortime use kinds implicit none private public :: timer !=============================================================================== type :: timer integer , private :: clock_rate ! Processor clock rate integer , private :: clock_start ! Start time in processor ticks integer , private :: clock_end ! End time in processor ticks integer , private :: clock_elapsed ! Elapsed time in processor ticks real ( rk ) :: elapsed_time ! Elapsed time in seconds real ( rk ), private :: cpu_start ! Start CPU time real ( rk ), private :: cpu_end ! End CPU time real ( rk ), private :: cpu_elapsed ! Elapsed CPU time real ( rk ) :: cpu_time ! Elapsed time in seconds #if defined(USE_OMP) real ( rk ), private :: omp_start ! Start OMP time real ( rk ), private :: omp_end ! End OMP time real ( rk ), private :: omp_elapsed ! Elapsed OMP time real ( rk ) :: omp_time ! Elapsed time in seconds #endif #if defined(USE_MPI) real ( rk ), private :: mpi_start ! Start MPI time real ( rk ), private :: mpi_end ! End MPI time real ( rk ), private :: mpi_elapsed ! Elapsed MPI time real ( rk ) :: mpi_time ! Elapsed time in seconds #endif integer , dimension ( 8 ), private :: values_start ! Start date and time values integer , dimension ( 8 ), private :: values_end ! End date and time values integer , dimension ( 8 ), private :: values_elapsed ! Elapsed date and time values real ( rk ) :: elapsed_dtime ! Elapsed time in seconds contains procedure :: timer_start ! Procedure for starting the timer procedure :: timer_stop ! Procedure for stopping the timer procedure :: timer_write ! Procedure for writing elapsed time to a file procedure :: ctimer_start ! Procedure for starting the CPU timer procedure :: ctimer_stop ! Procedure for stopping the CPU timer procedure :: ctimer_write ! Procedure for writing elapsed CPU time to a file #if defined(USE_OMP) procedure :: otimer_start ! Procedure for starting the OMP timer procedure :: otimer_stop ! Procedure for stopping the OMP timer procedure :: otimer_write ! Procedure for writing elapsed OMP time to a file #endif #if defined(USE_MPI) procedure :: mtimer_start ! Procedure for starting the MPI timer procedure :: mtimer_stop ! Procedure for stopping the MPI timer procedure :: mtimer_write ! Procedure for writing elapsed MPI time to a file #endif procedure :: dtimer_start ! Procedure for starting the date_and_time timer procedure :: dtimer_stop ! Procedure for stopping the date_and_time timer procedure :: dtimer_write ! Procedure for writing elapsed date_and_time time to a file end type !=============================================================================== contains !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current processor clock value. !> This value is used to calculate the elapsed time later. impure subroutine timer_start ( this ) class ( timer ), intent ( inout ) :: this ! Get the processor clock rate call system_clock ( count_rate = this % clock_rate ) ! Start the timer call system_clock ( count = this % clock_start ) end subroutine timer_start !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the elapsed time. !> Optionally, it can print a message along with the elapsed time. impure subroutine timer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer call system_clock ( count = this % clock_end ) ! Calculate the elapsed processor ticks this % clock_elapsed = this % clock_end - this % clock_start ! Convert processor ticks to seconds if (. not . present ( nloops )) & this % elapsed_time = real ( this % clock_elapsed , kind = rk ) / real ( this % clock_rate , kind = rk ) if ( present ( nloops )) & this % elapsed_time = real ( this % clock_elapsed , kind = rk ) / real ( this % clock_rate , kind = rk ) / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"Elapsed time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % elapsed_time , msg , color ) else call print_time ( this % elapsed_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine timer_stop !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the elapsed time to a file. impure subroutine timer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the elapsed time to the file write ( nunit , '(g0)' ) this % elapsed_time ! Close the file close ( nunit ) end subroutine timer_write !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current CPU time value. !> This value is used to calculate the CPU time later. impure subroutine ctimer_start ( this ) class ( timer ), intent ( inout ) :: this ! Start the timer call cpu_time ( this % cpu_start ) end subroutine ctimer_start !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the CPU time. !> Optionally, it can print a message along with the CPU time. impure subroutine ctimer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer call cpu_time ( this % cpu_end ) ! Calculate the elapsed CPU time this % cpu_elapsed = this % cpu_end - this % cpu_start ! Convert CPU time to seconds if (. not . present ( nloops )) this % cpu_time = this % cpu_elapsed if ( present ( nloops )) this % cpu_time = this % cpu_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"CPU time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % cpu_time , msg , color ) else call print_time ( this % cpu_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine ctimer_stop !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the CPU time to a file. impure subroutine ctimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the CPU time to the file write ( nunit , '(g0)' ) this % cpu_time ! Close the file close ( nunit ) end subroutine ctimer_write !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current OMP time value. !> This value is used to calculate the OMP time later. #if defined(USE_OMP) impure subroutine otimer_start ( this ) use omp_lib class ( timer ), intent ( inout ) :: this ! Start the timer this % omp_start = omp_get_wtime () end subroutine otimer_start !=============================================================================== #endif #if defined(USE_OMP) !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the OMP time. !> Optionally, it can print a message along with the OMP time. impure subroutine otimer_stop ( this , nloops , message , print , color ) use omp_lib class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color ! Stop the timer this % omp_end = omp_get_wtime () ! Calculate the elapsed OMP time this % omp_elapsed = this % omp_end - this % omp_start ! Convert OMP time to seconds if (. not . present ( nloops )) this % omp_time = this % omp_elapsed if ( present ( nloops )) this % omp_time = this % omp_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"OMP time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % omp_time , msg , color ) else call print_time ( this % omp_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine otimer_stop !=============================================================================== #endif #if defined(USE_OMP) !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the OMP time to a file. impure subroutine otimer_write ( this , file_name ) use omp_lib class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the OMP time to the file write ( nunit , '(g0)' ) this % omp_time ! Close the file close ( nunit ) end subroutine otimer_write !=============================================================================== #endif #if defined(USE_MPI) !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current MPI time value. !> This value is used to calculate the MPI time later. impure subroutine mtimer_start ( this ) ! include 'mpif.h' class ( timer ), intent ( inout ) :: this interface function mpi_wtime () import rk real ( rk ) :: mpi_wtime end function mpi_wtime end interface ! Start the timer this % mpi_start = mpi_wtime () end subroutine mtimer_start !=============================================================================== #endif #if defined(USE_MPI) !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the MPI time. !> Optionally, it can print a message along with the MPI time. impure subroutine mtimer_stop ( this , nloops , message , print , color ) ! include 'mpif.h' class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print character ( * ), intent ( in ), optional :: color interface function mpi_wtime () import rk real ( rk ) :: mpi_wtime end function mpi_wtime end interface ! Stop the timer this % mpi_end = mpi_wtime () ! Calculate the elapsed MPI time this % mpi_elapsed = this % mpi_end - this % mpi_start ! Convert MPI time to seconds if (. not . present ( nloops )) this % mpi_time = this % mpi_elapsed if ( present ( nloops )) this % mpi_time = this % mpi_elapsed / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"MPI time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % mpi_time , msg , color ) else call print_time ( this % mpi_time , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine mtimer_stop !=============================================================================== #endif #if defined(USE_MPI) !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the MPI time to a file. impure subroutine mtimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the MPI time to the file write ( nunit , '(g0)' ) this % mpi_time ! Close the file close ( nunit ) end subroutine mtimer_write !=============================================================================== #endif !=============================================================================== !> author: Seyed Ali Ghasemi !> Starts the timer by recording the current processor clock value. !> This value is used to calculate the elapsed time later. impure subroutine dtimer_start ( this ) class ( timer ), intent ( inout ) :: this ! Start the timer call date_and_time ( values = this % values_start ) end subroutine dtimer_start !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Stops the timer and calculates the elapsed time. !> Optionally, it can print a message along with the elapsed time. impure subroutine dtimer_stop ( this , nloops , message , print , color ) class ( timer ), intent ( inout ) :: this integer , intent ( in ), optional :: nloops character ( * ), intent ( in ), optional :: message character (:), allocatable :: msg logical , intent ( in ), optional :: print real ( rk ) :: values_elapsed_sec character ( * ), intent ( in ), optional :: color ! Stop the timer call date_and_time ( values = this % values_end ) ! Calculate the elapsed processor ticks this % values_elapsed = this % values_end - this % values_start ! Convert processor ticks to seconds if (. not . present ( nloops )) & this % elapsed_dtime = to_seconds ( this % values_elapsed ) if ( present ( nloops )) & this % elapsed_dtime = to_seconds ( this % values_elapsed ) / real ( nloops , kind = rk ) ! Print the elapsed time if (. not . present ( message )) then msg = \"Elapsed time:\" else msg = message end if if ( present ( print )) then if ( print ) call print_time ( this % elapsed_dtime , msg , color ) else call print_time ( this % elapsed_dtime , msg , color ) end if ! Deallocate the message if ( allocated ( msg )) deallocate ( msg ) end subroutine dtimer_stop !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi !> Writes the elapsed time to a file. impure subroutine dtimer_write ( this , file_name ) class ( timer ), intent ( in ) :: this character ( * ), intent ( in ) :: file_name logical :: file_exists integer :: nunit ! Check if the file exists inquire ( file = file_name , exist = file_exists ) ! Open the file in appropriate mode if ( file_exists ) then open ( newunit = nunit , file = file_name , status = 'old' , action = 'write' , position = 'append' ) else open ( newunit = nunit , file = file_name , status = 'new' , action = 'write' ) end if ! Write the elapsed time to the file write ( nunit , '(g0)' ) this % elapsed_dtime ! Close the file close ( nunit ) end subroutine dtimer_write !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi pure function to_seconds ( values ) result ( seconds ) integer , dimension ( 8 ), intent ( in ) :: values real ( rk ) :: seconds seconds = real ( values ( 3 ), rk ) * 2 4.0_rk * 6 0.0_rk * 6 0.0_rk + & real ( values ( 5 ), rk ) * 6 0.0_rk * 6 0.0_rk + & real ( values ( 6 ), rk ) * 6 0.0_rk + & real ( values ( 7 ), rk ) + & real ( values ( 8 ), rk ) / 100 0.0_rk end function to_seconds !=============================================================================== !=============================================================================== !> author: Seyed Ali Ghasemi impure subroutine print_time ( time , message , color ) use face real ( rk ), intent ( in ) :: time character ( * ), intent ( in ) :: message character ( * ), intent ( in ), optional :: color if ( present ( color )) then print '(A, F16.9, A)' , colorize ( trim ( message ), color_fg = trim ( color )), time , colorize ( \" [s]\" , color_fg = trim ( color )) else print '(A, F16.9, A)' , colorize ( trim ( message ), color_fg = 'blue' ), time , colorize ( \" [s]\" , color_fg = 'blue' ) end if end subroutine print_time !=============================================================================== end module fortime","tags":"","loc":"sourcefile/fortime.f90.html"},{"title":"test5.f90 – ForTime","text":"This file depends on sourcefile~~test5.f90~~EfferentGraph sourcefile~test5.f90 test5.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test5.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test5 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' ) call t % ctimer_write ( 'test/test5_ctimes' ) ! Optionally, write the elapsed time to a file end program test5","tags":"","loc":"sourcefile/test5.f90.html"},{"title":"test4.f90 – ForTime","text":"This file depends on sourcefile~~test4.f90~~EfferentGraph sourcefile~test4.f90 test4.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test4.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test4 use kinds use fortime implicit none type ( timer ) :: t ! CPU time call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop () end program test4","tags":"","loc":"sourcefile/test4.f90.html"},{"title":"test19.f90 – ForTime","text":"This file depends on sourcefile~~test19.f90~~EfferentGraph sourcefile~test19.f90 test19.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test19.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test19 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut #if defined(USE_OMP) ! OMP time call t % otimer_start () call sleep ( 1 ) ! Perform operations here call t % otimer_stop ( print = . false .) call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test19' ) #endif end program test19","tags":"","loc":"sourcefile/test19.f90.html"},{"title":"test10.f90 – ForTime","text":"This file depends on sourcefile~~test10.f90~~EfferentGraph sourcefile~test10.f90 test10.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test10.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test10 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: ierr #if defined(USE_MPI) ! MPI time call mpi_init ( ierr ) call t % mtimer_start () call sleep ( 1 ) ! Perform operations here call t % mtimer_stop () call mpi_finalize ( ierr ) call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test10' ) #endif end program test10","tags":"","loc":"sourcefile/test10.f90.html"},{"title":"test11.f90 – ForTime","text":"This file depends on sourcefile~~test11.f90~~EfferentGraph sourcefile~test11.f90 test11.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test11.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test11 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( nloops = nloops , message = 'MPI time:' ) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test11_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test11' ) #endif end program test11","tags":"","loc":"sourcefile/test11.f90.html"},{"title":"test25.f90 – ForTime","text":"This file depends on sourcefile~~test25.f90~~EfferentGraph sourcefile~test25.f90 test25.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test25.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test25 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop () call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test25' ) end program test25","tags":"","loc":"sourcefile/test25.f90.html"},{"title":"test16.f90 – ForTime","text":"This file depends on sourcefile~~test16.f90~~EfferentGraph sourcefile~test16.f90 test16.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test16.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test16 use kinds use fortime implicit none type ( timer ) :: t ! CPU time call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop ( print = . false .) end program test16","tags":"","loc":"sourcefile/test16.f90.html"},{"title":"test14.f90 – ForTime","text":"This file depends on sourcefile~~test14.f90~~EfferentGraph sourcefile~test14.f90 test14.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test14.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test14 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . false .) call t % timer_write ( 'test/test14_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test14' ) end program test14","tags":"","loc":"sourcefile/test14.f90.html"},{"title":"test7.f90 – ForTime","text":"This file depends on sourcefile~~test7.f90~~EfferentGraph sourcefile~test7.f90 test7.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test7.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test7 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut #if defined(USE_OMP) ! OMP time call t % otimer_start () call sleep ( 1 ) ! Perform operations here call t % otimer_stop () call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test7' ) #endif end program test7","tags":"","loc":"sourcefile/test7.f90.html"},{"title":"test20.f90 – ForTime","text":"This file depends on sourcefile~~test20.f90~~EfferentGraph sourcefile~test20.f90 test20.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test20.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test20 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 #if defined(USE_OMP) ! OMP time with nloops call t % otimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % otimer_stop ( nloops = nloops , message = 'OMP time:' , print = . false .) call t % otimer_write ( 'test/test20_otimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % omp_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test20' ) #endif end program test20","tags":"","loc":"sourcefile/test20.f90.html"},{"title":"example4.f90 – ForTime","text":"This file depends on sourcefile~~example4.f90~~EfferentGraph sourcefile~example4.f90 example4.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example4.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example4 use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' , print = . true ., color = 'yellow' ) ! nloops, message, print and color are optional. call t % ctimer_write ( 'example/example4_ctimes' ) ! Optionally, write the elapsed time to a file end program example4","tags":"","loc":"sourcefile/example4.f90.html"},{"title":"test30.f90 – ForTime","text":"This file depends on sourcefile~~test30.f90~~EfferentGraph sourcefile~test30.f90 test30.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test30.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test30 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( message = 'Elapsed time:' , print = . false .) call t % dtimer_write ( 'test/test30_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test30' ) end program test30","tags":"","loc":"sourcefile/test30.f90.html"},{"title":"test2.f90 – ForTime","text":"This file depends on sourcefile~~test2.f90~~EfferentGraph sourcefile~test2.f90 test2.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test2.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test2 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( nloops = nloops , message = 'Elapsed time:' ) call t % timer_write ( 'test/test2_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test2' ) end program test2","tags":"","loc":"sourcefile/test2.f90.html"},{"title":"test15.f90 – ForTime","text":"This file depends on sourcefile~~test15.f90~~EfferentGraph sourcefile~test15.f90 test15.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test15.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test15 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % timer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % timer_stop ( message = 'Elapsed time:' , print = . false .) call t % timer_write ( 'test/test15_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test15' ) end program test15","tags":"","loc":"sourcefile/test15.f90.html"},{"title":"test29.f90 – ForTime","text":"This file depends on sourcefile~~test29.f90~~EfferentGraph sourcefile~test29.f90 test29.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test29.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test29 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( nloops = nloops , message = 'Elapsed time:' , print = . false .) call t % dtimer_write ( 'test/test29_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test29' ) end program test29","tags":"","loc":"sourcefile/test29.f90.html"},{"title":"test27.f90 – ForTime","text":"This file depends on sourcefile~~test27.f90~~EfferentGraph sourcefile~test27.f90 test27.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test27.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test27 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 ! Elapsed time with nloops call t % dtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % dtimer_stop ( message = 'Elapsed time:' ) call t % dtimer_write ( 'test/test27_etimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % elapsed_dtime , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test27' ) end program test27","tags":"","loc":"sourcefile/test27.f90.html"},{"title":"example1.f90 – ForTime","text":"This file depends on sourcefile~~example1.f90~~EfferentGraph sourcefile~example1.f90 example1.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example1.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example1 use fortime implicit none type ( timer ) :: t call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop () end program example1","tags":"","loc":"sourcefile/example1.f90.html"},{"title":"test12.f90 – ForTime","text":"This file depends on sourcefile~~test12.f90~~EfferentGraph sourcefile~test12.f90 test12.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test12.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test12 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( message = 'MPI time:' ) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test12_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test12' ) #endif end program test12","tags":"","loc":"sourcefile/test12.f90.html"},{"title":"test24.f90 – ForTime","text":"This file depends on sourcefile~~test24.f90~~EfferentGraph sourcefile~test24.f90 test24.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test24.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test24 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut integer :: nl , nloops = 3 integer :: ierr #if defined(USE_MPI) ! MPI time with nloops call mpi_init ( ierr ) call t % mtimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % mtimer_stop ( message = 'MPI time:' , print = . false .) call mpi_finalize ( ierr ) call t % mtimer_write ( 'test/test24_mtimes' ) ! Optionally, write the elapsed time to a file call ut % check ( res = t % mpi_time , expected = real ( nloops , rk ) * 1.0_rk , tol = 1.0e-1_rk , msg = 'test24' ) #endif end program test24","tags":"","loc":"sourcefile/test24.f90.html"},{"title":"test1.f90 – ForTime","text":"This file depends on sourcefile~~test1.f90~~EfferentGraph sourcefile~test1.f90 test1.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test1.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test1 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop () call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test1' ) end program test1","tags":"","loc":"sourcefile/test1.f90.html"},{"title":"test17.f90 – ForTime","text":"This file depends on sourcefile~~test17.f90~~EfferentGraph sourcefile~test17.f90 test17.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test17.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test17 use kinds use fortime implicit none type ( timer ) :: t integer :: nl , nloops = 3 ! CPU time with nloops call t % ctimer_start () do nl = 1 , nloops call sleep ( 1 ) ! Perform operations ntimes end do call t % ctimer_stop ( nloops = nloops , message = 'CPU time:' , print = . false .) call t % ctimer_write ( 'test/test17_ctimes' ) ! Optionally, write the elapsed time to a file end program test17","tags":"","loc":"sourcefile/test17.f90.html"},{"title":"test13.f90 – ForTime","text":"This file depends on sourcefile~~test13.f90~~EfferentGraph sourcefile~test13.f90 test13.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~test13.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program test13 use kinds use fortime use forunittest implicit none type ( timer ) :: t type ( unit_test ) :: ut ! Elapsed time call t % timer_start () call sleep ( 1 ) ! Perform operations here call t % timer_stop ( print = . false .) call ut % check ( res = t % elapsed_time , expected = 1.0_rk , tol = 1.0e-1_rk , msg = 'test13' ) end program test13","tags":"","loc":"sourcefile/test13.f90.html"},{"title":"example3.f90 – ForTime","text":"This file depends on sourcefile~~example3.f90~~EfferentGraph sourcefile~example3.f90 example3.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example3.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example3 use fortime implicit none type ( timer ) :: t call t % ctimer_start () call sleep ( 1 ) ! Perform operations here call t % ctimer_stop () end program example3","tags":"","loc":"sourcefile/example3.f90.html"},{"title":"example5.f90 – ForTime","text":"This file depends on sourcefile~~example5.f90~~EfferentGraph sourcefile~example5.f90 example5.f90 sourcefile~fortime.f90 fortime.f90 sourcefile~example5.f90->sourcefile~fortime.f90 Help Graph Key Nodes of different colours represent the following: Graph Key Source File Source File This Page's Entity This Page's Entity Solid arrows point from a file to a file which it depends on. A file\nis dependent upon another if the latter must be compiled before the former\ncan be. Where possible, edges connecting nodes are\ngiven different colours to make them easier to distinguish in\nlarge graphs. Source Code program example5 use fortime implicit none type ( timer ) :: t call t % dtimer_start () call sleep ( 1 ) ! Perform operations here call t % dtimer_stop () end program example5","tags":"","loc":"sourcefile/example5.f90.html"}]}
\ No newline at end of file
diff --git a/type/timer.html b/type/timer.html
index 4ee24b7..0160553 100644
--- a/type/timer.html
+++ b/type/timer.html
@@ -1852,7 +1852,7 @@ Arguments
Documentation generated by
FORD
- on 2024-04-22T10:05:43.233135
+ on 2024-04-22T10:05:45.998116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |