ARTS
2.0.49
|
#include <agenda_class.h>
Public Member Functions | |
Agenda () | |
Agenda (const Agenda &x) | |
void | append (const String &methodname, const TokVal &keywordvalue) |
Appends methods to an agenda. More... | |
void | check (Workspace &ws, const Verbosity &verbosity) |
Checks consistency of an agenda. More... | |
void | push_back (MRecord n) |
Append a new method to end of list. More... | |
void | execute (Workspace &ws) const |
Execute an agenda. More... | |
void | resize (Index n) |
Resize the method list. More... | |
Index | nelem () const |
Return the number of agenda elements. More... | |
Agenda & | operator= (const Agenda &x) |
Assignment operator. More... | |
const Array< MRecord > & | Methods () const |
void | set_methods (const Array< MRecord > &ml) |
void | set_outputs_to_push_and_dup (const Verbosity &verbosity) |
Retrieve indexes of all input and output WSVs. More... | |
bool | is_input (Workspace &ws, Index var) const |
Check if given variable is agenda input. More... | |
bool | is_output (Index var) const |
Check if given variable is agenda output. More... | |
void | set_name (const String &nname) |
Set agenda name. More... | |
String | name () const |
Agenda name. More... | |
const ArrayOfIndex & | get_output2push () const |
const ArrayOfIndex & | get_output2dup () const |
void | print (ostream &os, const String &indent) const |
Print an agenda. More... | |
void | set_main_agenda () |
bool | is_main_agenda () const |
void | find_unused_variables () |
Private Attributes | |
String | mname |
Array< MRecord > | mml |
ArrayOfIndex | moutput_push |
ArrayOfIndex | moutput_dup |
bool | main_agenda |
Is set to true if this is the main agenda. More... | |
bool | mchecked |
Flag indicating that the agenda was checked for consistency. More... | |
The Agenda class.
An agenda is a list of workspace methods (including keyword data) to be executed. There are workspace variables of class agenda that can contain a list of methods to execute for a particular purpose, for example to compute the lineshape in an absorption calculation.
Definition at line 44 of file agenda_class.h.
|
inline |
Definition at line 47 of file agenda_class.h.
Referenced by append().
|
inline |
Copies an agenda.
Definition at line 54 of file agenda_class.h.
Appends methods to an agenda.
This function appends a workspace method to the agenda. It currently only supports appending WSMs which have no generic input or output, and which are defined as Set methods which take only one keyword.
The keyword value has to be a string, which for no value should be of length zero.
ws | Workspace reference |
methodname | The name of the WSM |
keywordvalue | The value of the keyword |
Definition at line 67 of file agenda_class.cc.
References Agenda(), mchecked, md_data, MdMap, and mml.
Referenced by jacobianAddAbsSpecies(), jacobianAddFreqShiftAndStretch(), jacobianAddPointingZa(), jacobianAddPolyfit(), and jacobianAddTemperature().
Checks consistency of an agenda.
Checks that the input used by the agenda and the output produced by the actual methods corresponds to what is desired in the lookup data.
Definition at line 92 of file agenda_class.cc.
References agenda_data, AgendaMap, AgRecord::In(), is_input(), is_output(), mchecked, mname, nelem(), Array< base >::nelem(), AgRecord::Out(), set_outputs_to_push_and_dup(), and Workspace::wsv_data.
Referenced by AgendaAppend(), AgendaSet(), and jacobianClose().
void Agenda::execute | ( | Workspace & | ws | ) | const |
Execute an agenda.
This executes the methods specified in tasklist on the given workspace. It also checks for errors during the method execution and stops the program if an error has occured.
Definition at line 166 of file agenda_class.cc.
References CREATE_OUT1, CREATE_OUT3, Workspace::duplicate(), get_wsv_id(), getaways, give_up(), MdRecord::InOut(), Workspace::is_initialized(), is_main_agenda(), mchecked, md_data, mml, mname, name(), MdRecord::Name(), Array< base >::nelem(), my_basic_string< charT >::nelem(), Workspace::pop_free(), Verbosity::set_main_agenda(), MdRecord::SetMethod(), and Workspace::wsv_data.
Referenced by abs_scalar_gas_agendaExecute(), AgendaExecute(), Arts2(), doit_conv_test_agendaExecute(), doit_mono_agendaExecute(), doit_rte_agendaExecute(), doit_scat_field_agendaExecute(), emission_agendaExecute(), forloop_agendaExecute(), iy_clearsky_agendaExecute(), iy_clearsky_basic_agendaExecute(), iy_cloudbox_agendaExecute(), iy_space_agendaExecute(), jacobian_agendaExecute(), jacobian_y_agendaExecute(), main_agendaExecute(), met_profile_calc_agendaExecute(), opt_prop_gas_agendaExecute(), opt_prop_part_agendaExecute(), pha_mat_spt_agendaExecute(), ppath_step_agendaExecute(), refr_index_agendaExecute(), sensor_response_agendaExecute(), spt_calc_agendaExecute(), surface_prop_agendaExecute(), test_agendaExecute(), and ybatch_calc_agendaExecute().
void Agenda::find_unused_variables | ( | ) |
Definition at line 619 of file agenda_class.cc.
|
inline |
Definition at line 78 of file agenda_class.h.
References moutput_dup.
Referenced by abs_scalar_gas_agendaExecute(), doit_conv_test_agendaExecute(), doit_mono_agendaExecute(), doit_rte_agendaExecute(), doit_scat_field_agendaExecute(), emission_agendaExecute(), forloop_agendaExecute(), iy_clearsky_agendaExecute(), iy_clearsky_basic_agendaExecute(), iy_cloudbox_agendaExecute(), iy_space_agendaExecute(), jacobian_agendaExecute(), jacobian_y_agendaExecute(), main_agendaExecute(), met_profile_calc_agendaExecute(), opt_prop_gas_agendaExecute(), opt_prop_part_agendaExecute(), pha_mat_spt_agendaExecute(), ppath_step_agendaExecute(), refr_index_agendaExecute(), sensor_response_agendaExecute(), spt_calc_agendaExecute(), surface_prop_agendaExecute(), test_agendaExecute(), and ybatch_calc_agendaExecute().
|
inline |
Definition at line 77 of file agenda_class.h.
References moutput_push.
Referenced by abs_scalar_gas_agendaExecute(), doit_conv_test_agendaExecute(), doit_mono_agendaExecute(), doit_rte_agendaExecute(), doit_scat_field_agendaExecute(), emission_agendaExecute(), forloop_agendaExecute(), iy_clearsky_agendaExecute(), iy_clearsky_basic_agendaExecute(), iy_cloudbox_agendaExecute(), iy_space_agendaExecute(), jacobian_agendaExecute(), jacobian_y_agendaExecute(), main_agendaExecute(), met_profile_calc_agendaExecute(), opt_prop_gas_agendaExecute(), opt_prop_part_agendaExecute(), pha_mat_spt_agendaExecute(), ppath_step_agendaExecute(), refr_index_agendaExecute(), sensor_response_agendaExecute(), spt_calc_agendaExecute(), surface_prop_agendaExecute(), test_agendaExecute(), and ybatch_calc_agendaExecute().
Check if given variable is agenda input.
A variable is agenda input if it is an input variable to any of the methods making up the agenda.
[in,out] | ws | Current Workspace |
[in] | var | The workspace variable to check. |
Definition at line 482 of file agenda_class.cc.
References MRecord::Id(), MRecord::In(), md_data, mml, nelem(), Array< base >::nelem(), and wsv_group_names.
Referenced by check().
|
inline |
bool Agenda::is_output | ( | Index | var | ) | const |
Check if given variable is agenda output.
A variable is agenda output if it is an output variable to any of the methods making up the agenda.
var | The workspace variable to check. |
Definition at line 558 of file agenda_class.cc.
References MRecord::Id(), md_data, mml, nelem(), Array< base >::nelem(), and MRecord::Out().
Referenced by check().
Definition at line 70 of file agenda_class.h.
References mml.
Referenced by AgendaAppend(), and ArtsParser::parse_agenda().
String Agenda::name | ( | ) | const |
Agenda name.
Returns the private member mname.
Definition at line 614 of file agenda_class.cc.
References mname.
Referenced by abs_scalar_gas_agendaExecute(), doit_conv_test_agendaExecute(), doit_mono_agendaExecute(), doit_rte_agendaExecute(), doit_scat_field_agendaExecute(), emission_agendaExecute(), execute(), forloop_agendaExecute(), get_iy_of_background(), iy_clearsky_agendaExecute(), iy_clearsky_basic_agendaExecute(), iy_cloudbox_agendaExecute(), iy_space_agendaExecute(), jacobian_agendaExecute(), jacobian_y_agendaExecute(), main_agendaExecute(), met_profile_calc_agendaExecute(), opt_prop_gas_agendaExecute(), opt_prop_part_agendaExecute(), pha_mat_spt_agendaExecute(), ppath_step_agendaExecute(), refr_index_agendaExecute(), sensor_response_agendaExecute(), set_outputs_to_push_and_dup(), spt_calc_agendaExecute(), surface_prop_agendaExecute(), test_agendaExecute(), and ybatch_calc_agendaExecute().
|
inline |
Return the number of agenda elements.
This is needed, so that we can find out the correct size for resize, befor we do a copy.
Definition at line 243 of file agenda_class.h.
References mml, and Array< base >::nelem().
Referenced by check(), chk_not_empty(), is_input(), is_output(), MRecord::operator=(), and ArtsParser::parse_agenda().
Assignment operator.
Copies an agenda.
Definition at line 266 of file agenda_class.h.
References mchecked, mml, mname, moutput_dup, and moutput_push.
void Agenda::print | ( | ostream & | os, |
const String & | indent | ||
) | const |
Print an agenda.
This prints an agenda, by printing the individual methods, just as they would appear in the controlfile.
os | Output stream. |
indent | How many characters of indentation. |
Definition at line 669 of file agenda_class.cc.
References mml, and Array< base >::nelem().
Referenced by operator<<(), and MRecord::print().
|
inline |
Append a new method to end of list.
This is used by the parser to fill up the agenda.
n | New method to add. |
Definition at line 255 of file agenda_class.h.
Referenced by ArtsParser::parse_agenda(), and ArtsParser::tasklist_insert_set_delete().
|
inline |
Resize the method list.
Resizes the agenda's method list to n elements
Definition at line 231 of file agenda_class.h.
References mml.
Referenced by MRecord::operator=(), and ArtsParser::parse_method().
|
inline |
Definition at line 81 of file agenda_class.h.
References main_agenda, and mchecked.
Referenced by main().
Definition at line 71 of file agenda_class.h.
Referenced by AgendaAppend().
void Agenda::set_name | ( | const String & | nname | ) |
Set agenda name.
This sets the private member mname to the given string.
nname | The name for the agenda. |
Definition at line 602 of file agenda_class.cc.
References mchecked, and mname.
Referenced by AgendaSet(), cloudboxOff(), jacobianInit(), and main().
void Agenda::set_outputs_to_push_and_dup | ( | const Verbosity & | verbosity | ) |
Retrieve indexes of all input and output WSVs.
Builds arrays of WSM output variables which need to be duplicated or pushed on the WSV stack before the agenda is executed.
Definition at line 291 of file agenda_class.cc.
References agenda_data, AgendaMap, CREATE_OUT3, AgRecord::In(), md_data, mml, moutput_dup, moutput_push, name(), Array< base >::nelem(), AgRecord::Out(), and PrintWsvNames().
Referenced by check().
|
private |
Is set to true if this is the main agenda.
Definition at line 94 of file agenda_class.h.
Referenced by is_main_agenda(), and set_main_agenda().
|
private |
Flag indicating that the agenda was checked for consistency.
Definition at line 97 of file agenda_class.h.
Referenced by append(), check(), execute(), operator=(), push_back(), set_main_agenda(), set_methods(), and set_name().
The actual list of methods to execute.
Definition at line 87 of file agenda_class.h.
Referenced by append(), execute(), find_unused_variables(), is_input(), is_output(), Methods(), nelem(), operator=(), print(), push_back(), resize(), set_methods(), and set_outputs_to_push_and_dup().
|
private |
Agenda name.
Definition at line 86 of file agenda_class.h.
Referenced by check(), execute(), name(), operator=(), and set_name().
|
private |
Definition at line 91 of file agenda_class.h.
Referenced by get_output2dup(), operator=(), and set_outputs_to_push_and_dup().
|
private |
Definition at line 89 of file agenda_class.h.
Referenced by get_output2push(), operator=(), and set_outputs_to_push_and_dup().