53 const char description[],
56 mdescription(description),
80 os <<
"Unknown output WSV " << output[j] <<
" in WSM " <<
mname;
81 throw runtime_error(os.str());
93 os <<
"Unknown input WSV " << input[j] <<
" in WSM " <<
mname;
94 throw runtime_error(os.str());
192 os <<
"\n*-------------------------------------------------------------------*\n" 193 <<
"Workspace variable = " << agr.
Name()
194 <<
"\n---------------------------------------------------------------------\n" 196 <<
"\n---------------------------------------------------------------------\n";
198 os <<
"Group = Agenda\n";
205 if (first) first =
false;
217 if (first) first =
false;
223 os <<
"\n*-------------------------------------------------------------------*\n";
248 os <<
"\n*-------------------------------------------------------------------*\n" 249 <<
"Workspace variable = " << wr.
Name()
250 <<
"\n---------------------------------------------------------------------\n" 252 <<
"\n---------------------------------------------------------------------\n" 254 <<
"\n*-------------------------------------------------------------------*\n";
265 map<String, Index>::const_iterator j =
288 ofs <<
"void " << agr.
Name() <<
"Execute(\n";
291 ofs <<
" // Workspace\n";
292 ofs <<
" Workspace& ws,\n";
295 ofs <<
" // Output\n";
296 for (ArrayOfIndex::const_iterator j = ago.begin(); j != ago.end(); j++)
300 ofs << Workspace::wsv_data[*j].Name() <<
",\n";
305 ofs <<
" // Input\n";
306 for (ArrayOfIndex::const_iterator j = agi.begin(); j != agi.end(); j++)
309 ArrayOfIndex::const_iterator it = ago.begin();
310 while (it != ago.end() && *it != *j)
321 if (group_name !=
"Index" && group_name !=
"Numeric")
325 ofs <<
" " << Workspace::wsv_data[*j].Name() <<
",\n";
330 ofs <<
" // Wrapper Input\n";
331 ofs <<
" const Agenda& input_agenda)";
Index get_wsv_group_id(const String &name)
Returns the id of the given group.
INDEX Index
The type to use for all integer numbers and indices.
static Array< WsvRecord > wsv_data
Lookup information for one agenda.
ArrayOfIndex minput
Workspace Input.
Index nelem() const
Number of elements.
Explicit construction of Arrays.
Declarations having to do with the four output streams.
Index Group() const
The wsv group to which this variable belongs.
map< String, Index > AgendaMap
The map associated with agenda_data.
const ArrayOfIndex & Out() const
const String & Name() const
Name of this workspace variable.
String mname
The name of this agenda.
This file contains the declaration and partly the implementation of the workspace class...
Index get_wsv_id(const String &name)
Get index of WSV.
The implementation for String, the ARTS string class.
const String & Description() const
const String & Description() const
A text describing this workspace variable.
bool check_agenda_data()
Check that agendas.cc and workspace.cc are consistent.
ArrayOfIndex moutput
Workspace Output.
const Array< AgRecord > agenda_data
The lookup information for the agendas.
const ArrayOfIndex & In() const
This can be used to make arrays out of anything.
const ArrayOfString wsv_group_names
The names associated with Wsv groups as Strings.
static map< String, Index > WsvMap
void write_agenda_wrapper_header(ofstream &ofs, const AgRecord &agr)
Write a agenda wrapper header.
const String & Name() const
ostream & operator<<(ostream &os, const AgRecord &agr)
Output operator for AgRecord.
This class contains all static information for one workspace variable.
AgRecord()
Default constructor.
Declarations for AgRecord, storing lookup information for one agenda.
Auxiliary header stuff related to workspace variable groups.