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.
Source Code
pure function dot_R0R1R1_rel_block(u,v,option,nblock)result(a)real(rk),intent(in),contiguous::u(:)real(rk),intent(in),contiguous::v(:)character(*),intent(in),optional::optioninteger,intent(in)::nblockreal(rk)::ainteger::im,se,eeinteger::block_size(nblock),start_elem(nblock),end_elem(nblock)call compute_block_ranges(size(u),nblock,block_size,start_elem,end_elem)a=0.0_rk#if defined(USE_DO_CONCURRENT)doconcurrent(im=1:nblock)reduce(+:a)se=start_elem(im)ee=end_elem(im)a=a+dot_product(u(se:ee),v(se:ee),option)end do#elsedo im=1,nblockse=start_elem(im)ee=end_elem(im)a=a+dot_product(u(se:ee),v(se:ee),option)end do#endifend function dot_R0R1R1_rel_block