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.
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
::
d
integer(kind=int64),
private
::
days
integer(kind=int64),
private
::
m
integer(kind=int64),
private
::
rem
integer(kind=int64),
private
::
y
Source Code
pure function datetime_from_unix_ms(ms)result(dt)!! Inverse of `unix_time_ms`, producing a UTC `datetime_t`.integer(int64),intent(in)::mstype(datetime_t)::dtinteger(int64)::days,rem,y,m,d! Floored division, so that instants before the epoch land on the right! day rather than being truncated towards it.days=ms/MS_PER_DAYrem=mod(ms,MS_PER_DAY)if(rem<0_int64)thendays=days-1_int64rem=rem+MS_PER_DAYend if call civil_from_days(days,y,m,d)dt%year=int(y,default_int)dt%month=int(m,default_int)dt%day=int(d,default_int)dt%hour=int(rem/MS_PER_HOUR,default_int)rem=mod(rem,MS_PER_HOUR)dt%minute=int(rem/MS_PER_MINUTE,default_int)rem=mod(rem,MS_PER_MINUTE)dt%second=int(rem/MS_PER_SECOND,default_int)dt%millisecond=int(mod(rem,MS_PER_SECOND),default_int)dt%utc_offset_min=0end function datetime_from_unix_ms