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.
Source Code
pure integer(int64)function periodic_operator_checksum(target_nodes,operator)result(checksum)integer(i32),intent(in)::target_nodes(:)real(dp),intent(in)::operator(:,:,:)integer(int8),allocatable::bytes(:)integer::target_idxchecksum=-3750763034362895579_int64bytes=transfer(target_nodes,bytes,size(target_nodes)*storage_size(0_i32)/8)call hash_bytes(bytes,checksum)! Hash one target block at a time in array element order: the same byte stream as the whole! operator, without a byte copy of it.do target_idx=1,size(operator,3)bytes=transfer(operator(:,:,target_idx),bytes,size(operator,1)*size(operator,2)*storage_size(0.0_dp)/8)call hash_bytes(bytes,checksum)end do end function periodic_operator_checksum