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.
Source Code
pure function map(ival,m,reverse)result(idest)integer(ip),intent(in)::ivaltype(mapping),intent(in)::mlogical,intent(in)::reverse! if reversed, go from: dest -> srcinteger(ip)::idestinteger::iif(reverse)then do i=1,size(m%src_start)! locate ival (dest) in the dest start:end rangeif(ival>=m%dest_start(i).and.ival<=m%dest_end(i))then! found it, map to destidest=m%src_start(i)+(ival-m%dest_start(i))! this is the resultant isourcereturn end if end do else do i=1,size(m%src_start)! locate ival (source) in the source start:end rangeif(ival>=m%src_start(i).and.ival<=m%src_end(i))then! found it, map to destidest=m%dest_start(i)+(ival-m%src_start(i))return end if end do end ifidest=ival! if not found in any of the setsend function map