16const std::string SIMPLEOUTPUT =
"Nextsim::SimpleOutput";
17const std::string CONFIGOUTPUT =
"Nextsim::ConfigOutput";
20Module<Nextsim::IDiagnosticOutput>::map Module<Nextsim::IDiagnosticOutput>::functionMap = {
21 { SIMPLEOUTPUT, newImpl<Nextsim::IDiagnosticOutput, Nextsim::SimpleOutput> },
22 { CONFIGOUTPUT, newImpl<Nextsim::IDiagnosticOutput, Nextsim::ConfigOutput> },
26Module<Nextsim::IDiagnosticOutput>::fn Module<Nextsim::IDiagnosticOutput>::spf
27 = functionMap.at(SIMPLEOUTPUT);
29std::unique_ptr<Nextsim::IDiagnosticOutput> Module<Nextsim::IDiagnosticOutput>::staticInstance
30 = std::move(newImpl<Nextsim::IDiagnosticOutput, Nextsim::SimpleOutput>());
32template <> std::string Module<Nextsim::IDiagnosticOutput>::moduleName()
34 return "Nextsim::IDiagnosticOutput";
37template <> HelpMap& getHelpRecursive<Nextsim::IDiagnosticOutput>(HelpMap& map,
bool getAll)
40 map[pfx].push_back({ pfx +
"." + Module<Nextsim::IDiagnosticOutput>::moduleName(),
41 ConfigType::MODULE, { SIMPLEOUTPUT }, SIMPLEOUTPUT,
"",
42 "The module controlling the output of NetCDF files containing diagnostic model data." });
47 return getImplTemplate<Nextsim::IDiagnosticOutput, DiagnosticOutputModule>();
49template <>
void setImplementation<Nextsim::IDiagnosticOutput>(
const std::string& implName)
51 setImplTemplate<DiagnosticOutputModule>(implName);
53template <> std::unique_ptr<Nextsim::IDiagnosticOutput> getInstance()
55 return getInstTemplate<Nextsim::IDiagnosticOutput, DiagnosticOutputModule>();
57DiagnosticOutputModule::Constructor DiagnosticOutputModule::ctor;
58DiagnosticOutputModule::Constructor::Constructor()
60 addToConfiguredModules<Nextsim::IDiagnosticOutput, DiagnosticOutputModule>();