digraph qs_energies { splines="ortho"; start [shape=ellipse, label="qs_energies()"]; node [shape=box, width=3]; init[label="CALL qs_energies_init()"]; { rank=same; if_rtp [shape=diamond, label="RTP?"]; rtp [label="CALL qs_energies_rtp()"]; if_rtp -> rtp [label="yes", minlen=1.5]; } { rank=same; if_lsscf [shape=diamond, label="LS_SCF?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/LS_SCF.html"]; lsscf [label="CALL ls_scf()", URL="http://cp2k.org/code:ls_scf"]; if_lsscf -> lsscf [label="yes", minlen=1.5]; } { rank=same; if_almo [shape=diamond, label="ALMO_SCF?", URL="http://manual.cp2k.org/trunk/CP2K_INPUT/FORCE_EVAL/DFT/ALMO_SCF.html"]; almoscf [label="CALL almo_entry_scf()"]; if_almo -> almoscf [label="yes", minlen=1.5]; } scf[label="CALL scf()"]; start -> if_rtp; if_rtp -> init [label="no"]; init -> if_lsscf; if_lsscf -> if_almo -> scf [label="no"]; return [shape=ellipse, label="RETURN", width=1]; rtp -> return[weight=0]; almoscf -> return[weight=0]; lsscf -> return[weight=0]; scf -> return; }