Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed
arrows point from an interface to procedures which implement that interface.
This could include the module procedures in a generic interface or the
implementation in a submodule of an interface in a parent module.
Where possible, edges connecting nodes are
given different colours to make them easier to distinguish in
large graphs.
Variables
Type
Visibility
Attributes
Name
Initial
integer(kind=int64),
private
::
count
integer(kind=int64),
private
::
rate
Source Code
function monotonic_scaled(units_per_second)result(t)!! Shared body of `monotonic_ms` and `monotonic_us`.integer(int64),intent(in)::units_per_secondinteger(int64)::tinteger(int64)::count,ratecall system_clock(count,rate)! F2018 16.9.180: a processor with no clock reports a zero count rate.if(rate<=0_int64)thent=PIC_CLOCK_NO_CLOCKreturn end if! Split rather than `count*units_per_second/rate`: with a nanosecond! tick the product overflows int64 after a few seconds of uptime. The! quotient and remainder together lose nothing.t=(count/rate)*units_per_second+(mod(count,rate)*units_per_second)/rateend function monotonic_scaled