1 #ifndef teca_derived_quantity_h
2 #define teca_derived_quantity_h
4 #include "teca_programmable_algorithm.h"
5 #include "teca_metadata.h"
6 #include "teca_dataset.h"
12 #if defined(__CUDACC__)
13 #pragma nv_diag_suppress = partial_override
39 TECA_GET_ALGORITHM_PROPERTIES_DESCRIPTION()
40 TECA_SET_ALGORITHM_PROPERTIES()
44 TECA_ALGORITHM_VECTOR_PROPERTY(std::
string, dependent_variable)
47 TECA_ALGORITHM_PROPERTY(std::
string, derived_variable)
51 void set_operation_name(const std::
string &v);
53 const std::
string &get_operation_name()
const
54 {
return this->operation_name; }
56 std::string &get_operation_name()
57 {
return this->operation_name; }
74 const std::vector<teca_metadata> &input_md)
override;
76 std::vector<teca_metadata> get_upstream_request(
77 unsigned int port,
const std::vector<teca_metadata> &input_md,
89 std::string get_derived_variable(
const teca_metadata &request);
94 std::vector<std::string> &dep_vars);
97 int set_name(
const std::string &name)
override;
100 std::string operation_name;
101 std::vector<std::string> dependent_variables;
102 std::string derived_variable;
105 #if defined(__CUDACC__)
106 #pragma nv_diag_default = partial_override