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
subroutine trim_comment(line,comment_chars)character(len=*),intent(inout)::linecharacter(len=*),intent(in)::comment_charscharacter::current_char,need_charinteger::n! Strip comments, but only outside quoted strings (so that var = '#yolo' is! valid when # is a comment char)need_char=""do n=1,len(line)current_char=line(n:n)if(need_char=="")then if(current_char=="'")thenneed_char="'"! Open stringelse if(current_char=='"')thenneed_char='"'! Open stringelse if(index(current_char,comment_chars)/=0)thenline=line(1:n-1)! Trim line up to comment characterexit end if else if(current_char==need_char)thenneed_char=""! Close stringend if end do end subroutine trim_comment