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();