diff --git a/components/eamxx/src/share/atm_process/atmosphere_process_dag.cpp b/components/eamxx/src/share/atm_process/atmosphere_process_dag.cpp index 81ecf09530d..b0338df690a 100644 --- a/components/eamxx/src/share/atm_process/atmosphere_process_dag.cpp +++ b/components/eamxx/src/share/atm_process/atmosphere_process_dag.cpp @@ -183,6 +183,7 @@ void AtmProcDAG::write_dag (const std::string& fname, const int verbosity) const ofile << "strict digraph G {\n" << "rankdir=\"LR\"\n"; + bool has_IC_field = false; for (const auto& n : m_nodes) { const auto& unmet = m_unmet_deps.at(n.id); @@ -268,10 +269,11 @@ void AtmProcDAG::write_dag (const std::string& fname, const int verbosity) const } fc += "\"> "; ofile << " " << fc << html_fix(print_fid(m_fids[fid],fid_verb)); - if (ekat::contains(m_unmet_deps.at(n.id), fid)) { + if (ekat::contains(unmet, fid)) { ofile << " *** MISSING ***"; - } else if (ekat::contains(m_unmet_deps.at(n.id), -fid)) { + } else if (ekat::contains(unmet, -fid)) { ofile << " (Init. Cond.)"; + has_IC_field = true; } ofile << "\n"; } @@ -339,7 +341,7 @@ void AtmProcDAG::write_dag (const std::string& fname, const int verbosity) const fc += (ekat::contains(unmet,gr_fid) ? "red" : "black"); fc += "\"> "; ofile << " " << fc << html_fix(print_fid(m_fids[gr_fid],fid_verb)); - if (ekat::contains(m_unmet_deps.at(n.id),gr_fid)) { + if (ekat::contains(unmet, gr_fid)) { ofile << " *** MISSING ***"; } ofile << "\n"; @@ -407,6 +409,24 @@ void AtmProcDAG::write_dag (const std::string& fname, const int verbosity) const << "];\n"; } + if (m_IC_processed && has_IC_field) { + int this_node_id = m_nodes.size() + 1; + ofile << this_node_id << " [\n" + << " shape=box\n" + << " color=\"#605d57\"\n" + << " fontcolor=\"#031576\"\n" + << " penwidth=8\n" + << " fontsize=40\n" + << " style=filled\n" + << " fillcolor=\"#cccccc\"\n" + << " align=\"center\"\n" + << " label=<NOTE: Fields denoted " + "with green text " + "
indicate the field was provided by the " + "
initial conditions and never updated
>\n" + << "];\n"; + } + // Close the file ofile << "}"; ofile.close();