本文整理汇总了C++中MetadataInfo类的典型用法代码示例。如果您正苦于以下问题:C++ MetadataInfo类的具体用法?C++ MetadataInfo怎么用?C++ MetadataInfo使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MetadataInfo类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: foreach
void Regola::updateMetadata(QTreeWidget *tree)
{
int index = 0 ;
foreach(Element * topLevel, childItems) {
if((topLevel->getType() == Element::ET_PROCESSING_INSTRUCTION)
&& (topLevel->getPITarget() == MetadataInfo::QXMLEDIT_TARGET_PI)) {
MetadataInfo info;
if(info.parseUpdatable(topLevel->getPIData(), index)) {
updateMetadataRecord(tree, topLevel, &info, false);
break;
}
}
index ++ ;
}
}
示例2: strprintf
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char *MetadataInformation()
{
string res;
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Alex Storey, Junzhi Liu");
mdi.SetClass(MCLS_INTERC, MCLSDESC_INTERC);
mdi.SetDescription(MDESC_PI_STORM);
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetID(MID_PI_STORM);
mdi.SetName(MID_PI_STORM);
mdi.SetVersion("0.4");
mdi.SetWebsite(SEIMS_SITE);
mdi.SetHelpfile("");
// set the input variables (time series)
mdi.AddInput(VAR_PCP, UNIT_DEPTH_MM, DESC_PCP, Source_Module, DT_Raster1D);
mdi.AddParameter(VAR_SLOPE, UNIT_PERCENT, DESC_SLOPE, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(Tag_HillSlopeTimeStep, UNIT_SECOND, DESC_TIMESTEP, File_Input, DT_Single);
// set the parameters (non-time series)
mdi.AddParameter(VAR_INTERC_MAX, UNIT_DEPTH_MM, DESC_INTERC_MAX, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_INTERC_MIN, UNIT_DEPTH_MM, DESC_INTERC_MIN, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_PI_B, UNIT_NON_DIM, DESC_PI_B, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_INIT_IS, UNIT_NON_DIM, DESC_INIT_IS, Source_ParameterDB, DT_Single);
// set the output variables
mdi.AddOutput(VAR_INLO, UNIT_DEPTH_MM, DESC_INLO, DT_Raster1D);
mdi.AddOutput(VAR_NEPR, UNIT_DEPTH_MM, DESC_NEPR, DT_Raster1D);
// set the dependencies
mdi.AddDependency(MCLS_CLIMATE, MCLSDESC_CLIMATE);
// write out the XML file.
res = mdi.GetXMLDocument();
//return res;
char *tmp = new char[res.size() + 1];
strprintf(tmp, res.size() + 1, "%s", res.c_str());
return tmp;
}
示例3: MetadataInformation
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char* MetadataInformation()
{
string res = "";
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Junzhi Liu");
mdi.SetClass(MCLS_CH_ROUTING, MCLSDESC_CH_ROUTING);
mdi.SetDescription(MDESC_CH_MSK);
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetHelpfile("CH_MSK.chm");
mdi.SetID(MID_CH_MSK);
mdi.SetName(MID_CH_MSK);
mdi.SetVersion("0.1");
mdi.SetWebsite(SEIMS_SITE);
mdi.AddParameter(Tag_HillSlopeTimeStep,UNIT_SECOND,DESC_TIMESTEP,File_Input, DT_Single);
mdi.AddParameter(Tag_CellSize, UNIT_NON_DIM, DESC_CellSize, Source_ParameterDB, DT_Single);
mdi.AddParameter(Tag_CellWidth, UNIT_LEN_M, DESC_CellWidth, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_MSK_X, UNIT_NON_DIM,DESC_MSK_X,Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_SLOPE,UNIT_PERCENT,DESC_SLOPE,Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_FLOWDIR,UNIT_NON_DIM,DESC_FLOWDIR,Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_CHWIDTH,UNIT_LEN_M,DESC_CHWIDTH,Source_ParameterDB, DT_Raster1D);
// reach information
mdi.AddParameter(Tag_FLOWOUT_INDEX_D8, UNIT_NON_DIM, DESC_FLOWOUT_INDEX_D8, Source_ParameterDB, DT_Array1D);
mdi.AddParameter(Tag_FLOWIN_INDEX_D8,UNIT_NON_DIM,DESC_FLOWIN_INDEX_D8,Source_ParameterDB, DT_Array2D);
mdi.AddParameter(VAR_STREAM_LINK, UNIT_NON_DIM,DESC_STREAM_LINK, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(Tag_ReachParameter, UNIT_NON_DIM, DESC_REACH_PARAMETER, Source_ParameterDB, DT_Array2D);
mdi.AddParameter(VAR_CHS0,UNIT_STRG_M3M,DESC_CHS0,Source_ParameterDB, DT_Single);
// from other module
mdi.AddInput(VAR_SBQG,UNIT_FLOW_CMS,DESC_SBQG,Source_Module, DT_Array1D);
mdi.AddInput(VAR_QSOIL,UNIT_FLOW_CMS,DESC_QSOIL,Source_Module, DT_Raster1D);
mdi.AddInput(VAR_QOVERLAND,UNIT_FLOW_CMS,DESC_QOVERLAND,Source_Module, DT_Raster1D);
mdi.AddInput(VAR_D_P,UNIT_DEPTH_MM,DESC_D_P,Source_Module, DT_Raster1D);
// output
mdi.AddOutput(VAR_QCH,UNIT_FLOW_CMS,DESC_QCH, DT_Array2D);
mdi.AddOutput(VAR_QOUTLET,UNIT_FLOW_CMS,DESC_QOUTLET, DT_Single);
mdi.AddOutput(VAR_QSUBBASIN,UNIT_FLOW_CMS, DESC_QSUBBASIN, DT_Array1D);
mdi.AddOutput(VAR_HCH,UNIT_DEPTH_MM, DESC_HCH, DT_Array2D);
res = mdi.GetXMLDocument();
char* tmp = new char[res.size()+1];
strprintf(tmp, res.size()+1, "%s", res.c_str());
return tmp;
}
示例4: strprintf
/// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char *MetadataInformation()
{
MetadataInfo mdi;
string res;
mdi.SetAuthor("LiangJun Zhu");
mdi.SetClass(MCLS_AET, MCLSDESC_AET);
mdi.SetDescription(MDESC_AET_PTH);
mdi.SetID(MID_AET_PTH);
mdi.SetName(MID_AET_PTH);
mdi.SetVersion("1.1");
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetWebsite(SEIMS_SITE);
mdi.SetHelpfile("");
/// set parameters from database
mdi.AddParameter(VAR_ESCO, UNIT_NON_DIM, DESC_ESCO, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_SOILLAYERS, UNIT_NON_DIM, DESC_SOILLAYERS, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_SOILDEPTH, UNIT_DEPTH_MM, DESC_SOILDEPTH, Source_ParameterDB, DT_Raster2D);
mdi.AddParameter(VAR_SOILTHICK, UNIT_DEPTH_MM, DESC_SOILTHICK, Source_ParameterDB, DT_Raster2D);
mdi.AddParameter(VAR_SOL_AWC, UNIT_DEPTH_MM, DESC_SOL_AWC, Source_ParameterDB, DT_Raster2D);
mdi.AddParameter(VAR_SOL_NO3, UNIT_CONT_KGHA, DESC_SOL_NO3, Source_Module, DT_Raster2D);
/// set input from other modules
mdi.AddInput(DataType_MeanTemperature, UNIT_TEMP_DEG, DESC_TMEAN, Source_Module, DT_Raster1D);
mdi.AddInput(VAR_LAIDAY, UNIT_AREA_RATIO, DESC_LAIDAY, Source_Module, DT_Raster1D);
mdi.AddInput(VAR_PET, UNIT_WTRDLT_MMD, DESC_PET, Source_Module, DT_Raster1D);
mdi.AddInput(VAR_INET, UNIT_DEPTH_MM, DESC_INET, Source_Module_Optional, DT_Raster1D);
mdi.AddInput(VAR_SNAC, UNIT_DEPTH_MM, DESC_SNAC, Source_Module, DT_Raster1D); /// in swat, sno_hru
mdi.AddInput(VAR_SNSB, UNIT_DEPTH_MM, DESC_SNSB, Source_Module_Optional, DT_Raster1D);
mdi.AddInput(VAR_SOL_COV, UNIT_CONT_KGHA, DESC_SOL_COV, Source_Module, DT_Raster1D);
mdi.AddInput(VAR_SOL_ST, UNIT_DEPTH_MM, DESC_SOL_ST, Source_Module, DT_Raster2D);/// sol_st in SWAT
mdi.AddInput(VAR_SOL_SW, UNIT_DEPTH_MM, DESC_SOL_SW, Source_Module, DT_Raster1D); /// sol_sw in SWAT
/// set the output variables
mdi.AddOutput(VAR_SNSB, UNIT_DEPTH_MM, DESC_SNSB, DT_Raster1D); /// in swat, snoev
mdi.AddOutput(VAR_PPT, UNIT_DEPTH_MM, DESC_PPT, DT_Raster1D);
mdi.AddOutput(VAR_SOET, UNIT_DEPTH_MM, DESC_SOET, DT_Raster1D);
mdi.AddOutput(VAR_SNAC, UNIT_DEPTH_MM, DESC_SNAC, DT_Raster1D);
mdi.AddOutput(VAR_SNO3UP, UNIT_CONT_KGHA, DESC_SNO3UP, DT_Single);
//mdi.AddOutput(VAR_SOL_SW, UNIT_DEPTH_MM, DESC_SOL_SW, DT_Raster1D); /// mm, different from VAR_SOMO
//mdi.AddOutput(VAR_SOMO, UNIT_DEPTH_MM, DESC_SOL_ST, DT_Raster2D);
/// write out the XML file.
res = mdi.GetXMLDocument();
char *tmp = new char[res.size() + 1];
strprintf(tmp, res.size() + 1, "%s", res.c_str());
return tmp;
}
示例5: MetadataInformation
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char* MetadataInformation()
{
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Junzhi Liu");
mdi.SetClass("Soil Temperature", "Calculate the soil temperature.");
mdi.SetDescription("Finn Plauborg Method to compute soil temperature.");
mdi.SetEmail("[email protected]");
mdi.SetID("STP_FP");
mdi.SetName("STP_FP");
mdi.SetVersion("0.5");
mdi.SetWebsite("http://seims.github.io/SEIMS");
mdi.SetHelpfile("STP_FP.html");
/// from parameter database
mdi.AddParameter("soil_ta0","","Coefficient a0 for Finn Plauborg Method",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("soil_ta1","","Coefficient a1 for Finn Plauborg Method",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("soil_ta2","","Coefficient a2 for Finn Plauborg Method",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("soil_ta3","","Coefficient a3 for Finn Plauborg Method",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("soil_tb1","","Coefficient b1 for Finn Plauborg Method",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("soil_tb2","","Coefficient b2 for Finn Plauborg Method",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("soil_td1","","Coefficient d1 for Finn Plauborg Method",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("soil_td2","","Coefficient d2 for Finn Plauborg Method",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("k_soil10","","Ratio between soil temperature at 10 cm and the mean",
"ParameterDB_WaterBalance", DT_Single);
mdi.AddParameter("soil_t10","","Factor of soil temperature relative to short grass (degree)",
"ParameterDB_WaterBalance", DT_Raster);
//mdi.AddParameter("Mask", "", "Array containing the row and column numbers for valid cells",
// "ParameterDB_WaterBalance", DT_Raster);
/// from interpolation module
/// air temperature
mdi.AddInput("D_Tmin","oC","Minimum air temperature","Module", DT_Raster);
mdi.AddInput("D_Tmax","oC","Maximum air temperature","Module", DT_Raster);
//mdi.AddInput("Tmin1","oC","Minimum air temperature of the (d-1)th day","Module", DT_Raster);
//mdi.AddInput("Tmax1","oC","Maximum air temperature of the (d-1)th day","Module", DT_Raster);
//mdi.AddInput("Tmin2","oC","Minimum air temperature of the (d-2)th day","Module", DT_Raster);
//mdi.AddInput("Tmax2","oC","Maximum air temperature of the (d-2)th day","Module", DT_Raster);
/// output soil temperature
mdi.AddOutput("SOTE","oC", "Soil Temperature", DT_Raster);
string res = mdi.GetXMLDocument();
char* tmp = new char[res.size()+1];
strprintf(tmp, res.size()+1, "%s", res.c_str());
return tmp;
}
示例6: MetadataInformation
extern "C" SEIMS_MODULE_API const char* MetadataInformation() {
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Junzhi Liu, Liangjun Zhu");
mdi.SetClass(MCLS_OL_ROUTING, MCLSDESC_OL_ROUTING);
mdi.SetDescription(MDESC_IUH_SED_OL);
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetHelpfile("");
mdi.SetID(MID_IUH_SED_OL);
mdi.SetName(MID_IUH_SED_OL);
mdi.SetVersion("1.2");
mdi.SetWebsite(SEIMS_SITE);
mdi.AddParameter(Tag_TimeStep, UNIT_HOUR, DESC_TIMESTEP, File_Input, DT_Single);
mdi.AddParameter(Tag_CellWidth, UNIT_LEN_M, DESC_CellWidth, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_SUBBSNID_NUM, UNIT_NON_DIM, DESC_SUBBSNID_NUM, Source_ParameterDB, DT_Single);
mdi.AddParameter(Tag_SubbasinId, UNIT_NON_DIM, Tag_SubbasinId, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_OL_IUH, UNIT_NON_DIM, DESC_OL_IUH, Source_ParameterDB, DT_Array2D);
mdi.AddParameter(VAR_SUBBSN, UNIT_NON_DIM, DESC_SUBBSN, Source_ParameterDB, DT_Raster1D);
mdi.AddInput(VAR_SOER, UNIT_KG, DESC_SOER, Source_Module, DT_Raster1D);
mdi.AddOutput(VAR_SED_TO_CH, UNIT_KG, DESC_SED_TO_CH, DT_Array1D, TF_SingleValue);
mdi.AddOutput(VAR_SEDYLD, UNIT_KG, DESC_SEDYLD, DT_Raster1D);
// write out the XML file.
string res = mdi.GetXMLDocument();
char* tmp = new char[res.size() + 1];
strprintf(tmp, res.size() + 1, "%s", res.c_str());
return tmp;
}
示例7: MetadataInformation
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char* MetadataInformation()
{
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Cheng Wei");
mdi.SetClass("Yield", "Calculate the amount of yield.");
mdi.SetDescription("For simplicity purpose for the time being, the algorithm used in the original WetSpa is incorporated in the SEIMS.");
mdi.SetEmail("[email protected]");
mdi.SetID("Yield");
mdi.SetName("Yield");
mdi.SetVersion("0.5");
mdi.SetWebsite("http://seims.github.io/SEIMS");
mdi.SetHelpfile("Yield.chm");
mdi.AddParameter("IDC","","land cover/plant classification","ParameterDB_Crop",DT_Raster);
mdi.AddParameter("CNYLD","","fraction of nitrogen in the yield","ParameterDB_Crop",DT_Raster);
mdi.AddParameter("CPYLD","kg/ha"," fraction of phosphorus in the yield","ParameterDB_Crop",DT_Raster);
mdi.AddParameter("HVSTI","kg/ha"," potential harvest index for the plant at maturity given ideal growing conditions","ParameterDB_Crop",DT_Raster);
mdi.AddParameter("WSYF","","harvest index for the plant in drought conditions and represents the minimum harvest index allowed for the plant","ParameterDB_Crop",DT_Raster);
mdi.AddParameter("DLAI","","Decline LAI Fraction","ParameterDB_Crop",DT_Raster);
mdi.AddParameter("harvestDate","","the simulation end of date","ParameterDB",DT_Raster);
mdi.AddInput("LAI","","leaf area index for a given day","Module", DT_Raster);
mdi.AddInput("D_PET","mm/d", "Potential evapotranspiration", "Module",DT_Raster);///////????zhiqinag: "D_PETC"
mdi.AddInput("D_SOET","mm","soil evapotranpiration","Module",DT_Raster); //actual evapotranspiration
mdi.AddInput("Fr_PHU","","fraction of phu accumulated on a given day ","Module",DT_Raster);
mdi.AddInput("BIOMASS_N","kg/ha","actual biomass N","Module",DT_Raster);
mdi.AddInput("BIOMASS_P","kg/ha","actual biomass P","Module",DT_Raster);
mdi.AddInput("BIOMASS_AG","kg/ha"," aboveground biomass on the day of harvest","Module",DT_Raster);
mdi.AddInput("BIOMASS_ROOT","kg/ha","biomass root","Module",DT_Raster);
mdi.AddInput("BIOMASS","kg/ha","total biomass","Module",DT_Raster);
mdi.AddInput("Total_WaterUptake","mm","total water uptake","Module",DT_Raster);
// set the output variables
mdi.AddOutput("Yield_N","kg/ha","amount of nitrogen removed in the yield",DT_Raster);
mdi.AddOutput("Yield_P","kg/ha","amount of phosphorus removed in the yield",DT_Raster);
mdi.AddOutput("Yield","kg/ha","crop yield",DT_Raster);
// write out the XML file.
string res = mdi.GetXMLDocument();
char* tmp = new char[res.size()+1];
strprintf(tmp, res.size()+1, "%s", res.c_str());
return tmp;
}
示例8: strprintf
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char *MetadataInformation()
{
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Zhiqiang Yu, LiangJun Zhu");
mdi.SetClass(MCLS_SNOW, MCLSDESC_SNOW);
mdi.SetDescription(MDESC_SNO_SP);
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetID(MID_SNO_SP);
mdi.SetName(MID_SNO_SP);
mdi.SetVersion("1.1");
mdi.SetWebsite(SEIMS_SITE);
mdi.SetHelpfile("SNO_SP.chm");
mdi.AddParameter(VAR_T0, UNIT_TEMP_DEG, DESC_T0, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_K_BLOW, UNIT_NON_DIM, DESC_K_BLOW, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_T_SNOW, UNIT_TEMP_DEG, DESC_T_SNOW, Source_ParameterDB, DT_Single);
// I don't think VAR_SWE0 is useful. By LJ
// mdi.AddParameter(VAR_SWE0, UNIT_DEPTH_MM, DESC_SWE0, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_LAG_SNOW, UNIT_NON_DIM, DESC_LAG_SNOW, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_C_SNOW6, UNIT_MELT_FACTOR, DESC_C_SNOW6, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_C_SNOW12, UNIT_MELT_FACTOR, DESC_C_SNOW12, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_SNOCOVMX, UNIT_DEPTH_MM, DESC_SNOCOVMX, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_SNO50COV, UNIT_NON_DIM, DESC_SNO50COV, Source_ParameterDB, DT_Single);
// Net precipitation is updated after snow accumulation.
mdi.AddInput(VAR_NEPR, UNIT_DEPTH_MM, DESC_NEPR, Source_Module, DT_Raster1D); // from interception module
//TODO: SNAC is used as unknown variable in the execute() funtion, so why it here as Input, otherwise in Output? By LJ
//mdi.AddInput(VAR_SNAC, UNIT_DEPTH_MM, DESC_SNAC, Source_Module,DT_Raster1D); // from snow water balance module
// I think VAR_SWE is useless either. By LJ
// mdi.AddInput(VAR_SWE, UNIT_DEPTH_MM, DESC_SWE, Source_Module, DT_Single); // from snow water balance module
// TODO: SNRD currently have not been implemented, therefore initialized as zero. By LJ
// mdi.AddInput(VAR_SNRD, UNIT_DEPTH_MM, DESC_SNRD, Source_Module, DT_Raster1D); // from snow redistribution module
// Snow sublimation will be considered in actual evpotranspiration module (AET_PTH), so no need to set as Input. By LJ
// mdi.AddInput(VAR_SNSB, UNIT_DEPTH_MM, DESC_SNSB, Source_Module, DT_Raster1D); //from snow sublimation module
mdi.AddInput(VAR_TMAX, UNIT_TEMP_DEG, DESC_TMAX, Source_Module, DT_Raster1D); // from interpolation module
mdi.AddInput(VAR_TMEAN, UNIT_TEMP_DEG, DESC_TMEAN, Source_Module, DT_Raster1D);
// set the output variables
mdi.AddOutput(VAR_SNME, UNIT_DEPTH_MM, DESC_SNME, DT_Raster1D);
mdi.AddOutput(VAR_SNAC, UNIT_DEPTH_MM, DESC_SNAC, DT_Raster1D);
// write out the XML file.
string res = mdi.GetXMLDocument();
char *tmp = new char[res.size() + 1];
strprintf(tmp, res.size() + 1, "%s", res.c_str());
return tmp;
}
示例9: MetadataInformation
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char* MetadataInformation()
{
string res = "";
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Junzhi Liu");
mdi.SetClass("interflow routing", "interflow routing.");
mdi.SetDescription("interflow routing using the method of WetSpa model.");
mdi.SetEmail("[email protected]");
mdi.SetHelpfile("INTERFLOW_IKW.chm");
mdi.SetID("INTERFLOW_IKW");
mdi.SetName("INTERFLOW_IKW");
mdi.SetVersion("0.1");
mdi.SetWebsite("http://seims.github.io/SEIMS");
mdi.AddParameter("DT_HS", "second", "Time step of the simulation", "file.in", DT_Single);
mdi.AddParameter("CellWidth", "m", "Cell size", "file.in", DT_Single);
mdi.AddParameter("Slope", "%", "Slope", "ParameterDB_WaterBalance", DT_Raster);
mdi.AddParameter("CHWIDTH", "m", "Channel width", "ParameterDB_Discharge", DT_Raster);
mdi.AddParameter("STREAM_LINK", "", "Stream link", "ParameterDB_Discharge", DT_Raster);
mdi.AddParameter("FLOWIN_INDEX_D8", "", "The index of flow in cell in the compressed array,"
" and the first element in each sub-array is the number of flow in cells in this sub-array", "ParameterDB_Discharge", DT_Array2D);
mdi.AddParameter("ROUTING_LAYERS", "", "Routing layers according to the flow direction"
"There are not flow relationships within each layer, and the first element in each layer is the number of cells in the layer", "ParameterDB_Discharge", DT_Array2D);
mdi.AddParameter("Conductivity","mm/h","Soil hydraulic conductivity","ParameterDB_WaterBalance", DT_Raster);
mdi.AddParameter("Porosity", "%", "Soil porosity","ParameterDB_WaterBalance", DT_Raster);
mdi.AddParameter("FieldCap", "%", "Field capacity","ParameterDB_WaterBalance", DT_Raster);
mdi.AddParameter("RootDepth", "mm", "Root depth","ParameterDB_WaterBalance", DT_Raster);
mdi.AddParameter("Poreindex","-","pore size distribution index","ParameterDB_WaterBalance",DT_Raster);
mdi.AddParameter("Ki","-","Interflow scale factor","ParameterDB_WaterBalance",DT_Single);
mdi.AddInput("D_SOMO","%","Soil Moisture","Module", DT_Raster);
mdi.AddInput("D_SURU", "mm", "surface runoff (considering return flow)", "Module", DT_Raster);
mdi.AddOutput("QSoil", "m3/s", "Flux in the downslope boundary of cells", DT_Raster);
mdi.AddOutput("ReturnFlow", "mm", "water depth of return flow", DT_Raster);
res = mdi.GetXMLDocument();
char* tmp = new char[res.size()+1];
strprintf(tmp, res.size()+1, "%s", res.c_str());
return tmp;
}
示例10: MetadataInformation
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char* MetadataInformation()
{
string res = "";
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Wu Hui");
mdi.SetClass("Sediment", "Sediment channel routing using variable channel dimention method.");
mdi.SetDescription("Sediment channel routing using variable channel dimention method as used in SWAT (in SWAT document, page 379).");
mdi.SetEmail("[email protected]");
mdi.SetHelpfile("SEDR_VCD.chm");
mdi.SetID("SEDR_VCD");
mdi.SetName("SEDR_VCD");
mdi.SetVersion("0.1");
mdi.SetWebsite("http://seims.github.io/SEIMS");
#ifdef STORM_MODEL
mdi.AddParameter("DT_CH","s","time step","file.in",DT_Single); //for long term model
#else
mdi.AddParameter("TimeStep","s","time step","file.in",DT_Single);
#endif
mdi.AddParameter("p_rf","", "Peak rate adjustment factor","ParameterDB_Sediment", DT_Single);
mdi.AddParameter("spcon","", "Coefficient in sediment transport equation","ParameterDB_Sediment", DT_Single);
mdi.AddParameter("spexp","", "Exponent in sediment transport equation","ParameterDB_Sediment", DT_Single);
mdi.AddParameter("vcrit","m/s", "critical veloctiy for sediment deposition","ParameterDB_Sediment", DT_Single);
//mdi.AddParameter("CellSize","","the size of the cell (the validate cells of the whole basin)","file.in",DT_Single);
//mdi.AddParameter("nPETS","","the number of the PET stations","file.in",DT_Single);
//mdi.AddParameter("CellWidth","m","cell width of the grid","file.in",DT_Single);
mdi.AddParameter("Chs0","m3/m","initial channel storage per meter of reach length","ParameterDB_Discharge", DT_Single);
//mdi.AddParameter("Vseep0","m3/s","the initial volume of transmission loss to the deep aquifer over the time interval","ParameterDB_Discharge", DT_Single);
mdi.AddParameter("RchParam","","reach parameters", "reachparameters.txt",DT_Array2D);
//mdi.AddParameter("ReachParameter", "", "Reach parameters such stream order, manning's n and downstream subbasin id", "ParameterDB_Discharge", DT_Array2D);
//mdi.AddParameter("Vdiv","m3","diversion loss of the river reach", "diversionloss.txt",DT_Array1D);
//mdi.AddParameter("Vpoint","m3"," point source discharge", "diversionloss.txt",DT_Array1D);
//mdi.AddParameter("subbasin","","subbasin grid","ParameterDB_Discharge", DT_MapWindowRaster);
mdi.AddInput("SEDTOCH","ton","sediment to streams from each subbasin","Module", DT_Array1D); // for longterm model
mdi.AddInput("SubSEDTOCH","kg","sediment to streams from each subbasin","Module", DT_Array1D); // for storm model
//mdi.AddInput("CROSS_AREA", "m2", "the cross-sectional area of flow in the channel","Module", DT_Array1D);
mdi.AddInput("QRECH","","Discharge in a text format at each reach outlet and at each time step","Module",DT_Array1D);
mdi.AddInput("QS","","Overland discharge at each reach outlet and at each time step","Module",DT_Array1D);
mdi.AddInput("QI","","Interflow at each reach outlet and at each time step","Module",DT_Array1D);
mdi.AddInput("QG","","Groundwater discharge at each reach outlet and at each time step","Module",DT_Array1D);
mdi.AddInput("CHST", "m3", "channel storage", "Module",DT_Array1D);
//mdi.AddInput("SEEPAGE", "m3", "seepage", "Module",DT_Array1D);
mdi.AddInput("CHWTDEPTH", "m", "channel water depth", "Module",DT_Array1D);
//mdi.AddInput("C_WABA","","Channel water balance in a text format for each reach and at each time step","Module",DT_Array2D);
mdi.AddOutput("SEDRECH","ton","Sediment in a text format at each reach outlet and at each time step",DT_Array1D);
mdi.AddOutput("T_CHSB","","Channel sediment balance in a text format for each reach and at each time step",DT_Array2D);
mdi.AddOutput("SEDOUTLET", "ton", "sediment concentration at the watershed outlet", DT_Single);
//mdi.AddOutput("DEPOUTLET", "ton", "sediment concentration at the watershed outlet", DT_Single);
// set the dependencies
mdi.AddDependency("MUSLE_AS","MUSLE_AS module");
mdi.AddDependency("MUSK_CH","MUSK_CH module"); //for module GWA_RE to update groundwater storage
res = mdi.GetXMLDocument();
char* tmp = new char[res.size()+1];
strprintf(tmp, res.size()+1, "%s", res.c_str());
return tmp;
}
示例11: MetadataInformation
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char* MetadataInformation()
{
string res = "";
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Wu Hui");
mdi.SetClass(MCLS_SED_ROUTING, MCLSDESC_SED_ROUTING);
mdi.SetDescription(MDESC_SEDR_VCD);
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetHelpfile("SEDR_VCD.chm");
mdi.SetID(MID_SEDR_VCD);
mdi.SetName(MID_SEDR_VCD);
mdi.SetVersion("0.1");
mdi.SetWebsite(SEIMS_SITE);
#ifdef STORM_MODEL
mdi.AddParameter(Tag_ChannelTimeStep,UNIT_SECOND,DESC_TIMESTEP,File_Input,DT_Single); //for long term model // this method is daily time interval based.
#else
mdi.AddParameter(Tag_TimeStep,UNIT_SECOND,DESC_TIMESTEP,File_Input,DT_Single); /// in Module Settings: time_t SettingsInput::getDtDaily() const{return 86400;}
#endif
mdi.AddParameter(VAR_P_RF,UNIT_NON_DIM, DESC_P_RF,Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_SPCON,UNIT_NON_DIM, DESC_SPCON,Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_SPEXP,UNIT_NON_DIM,DESC_SPEXP ,Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_VCRIT,UNIT_SPEED_MS, DESC_VCRIT,Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_CHS0, UNIT_STRG_M3M, DESC_CHS0, Source_ParameterDB, DT_Single);
mdi.AddParameter(Tag_RchParam,UNIT_NON_DIM,DESC_REACH_PARAMETER, Source_ParameterDB,DT_Array2D);
mdi.AddInput(VAR_SED_TO_CH,UNIT_TONS,DESC_SED_TO_CH,Source_Module, DT_Array1D); // for longterm model
mdi.AddInput(VAR_SUB_SEDTOCH,UNIT_KG,DESC_SUB_SEDTOCH,Source_Module, DT_Array1D); // for storm model
mdi.AddInput(VAR_QRECH,UNIT_FLOW_CMS,DESC_QRECH,Source_Module,DT_Array1D);
mdi.AddInput(VAR_QS,UNIT_FLOW_CMS,DESC_QS,Source_Module,DT_Array1D);
mdi.AddInput(VAR_QI,UNIT_FLOW_CMS,DESC_QI,Source_Module,DT_Array1D);
mdi.AddInput(VAR_QG,UNIT_FLOW_CMS,DESC_QG,Source_Module,DT_Array1D);
mdi.AddInput(VAR_CHST, UNIT_VOL_M3, DESC_CHST,Source_Module,DT_Array1D);
mdi.AddInput(VAR_CHWTDEPTH, UNIT_LEN_M, DESC_CHWTDEPTH, Source_Module,DT_Array1D);
mdi.AddOutput(VAR_SED_RECH,UNIT_TONS,DESC_SED_RECH,DT_Array1D);
mdi.AddOutput(VAR_CHSB,UNIT_NON_DIM,DESC_CHSB,DT_Array2D);
mdi.AddOutput(VAR_SED_OUTLET,UNIT_TONS,DESC_SED_OUTLET, DT_Single);
// set the dependencies
mdi.AddDependency(MCLS_OL_EROSION,MCLSDESC_OL_EROSION);
mdi.AddDependency(MCLS_CH_ROUTING, MCLSDESC_CH_ROUTING); //for module GWA_RE to update groundwater storage
res = mdi.GetXMLDocument();
char* tmp = new char[res.size()+1];
strprintf(tmp, res.size()+1, "%s", res.c_str());
return tmp;
}
示例12: strprintf
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char *MetadataInformation()
{
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Zhiqiang Yu");
mdi.SetClass(MCLS_OL_EROSION, MCLSDESC_OL_EROSION);
mdi.SetDescription(MDESC_MUSLE_AS);
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetID(MID_MUSLE_AS);
mdi.SetName(MID_MUSLE_AS);
mdi.SetVersion("0.5");
mdi.SetWebsite(SEIMS_SITE);
mdi.SetHelpfile("MUSLE_AS.chm");
mdi.AddParameter(Tag_CellWidth, UNIT_LEN_M, DESC_CellWidth, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_DEPRATIO, UNIT_NON_DIM, DESC_DEPRATIO, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_USLE_K, UNIT_NON_DIM, DESC_USLE_K, Source_ParameterDB, DT_Raster2D);
mdi.AddParameter(VAR_USLE_C, UNIT_NON_DIM, DESC_USLE_C, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_USLE_P, UNIT_NON_DIM, DESC_USLE_P, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_ACC, UNIT_NON_DIM, DESC_ACC, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_SLOPE, UNIT_PERCENT, DESC_SLOPE, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_SUBBASIN_PARAM, UNIT_NON_DIM, DESC_SUBBASIN_PARAM, Source_ParameterDB, DT_Subbasin);
mdi.AddParameter(VAR_STREAM_LINK, UNIT_NON_DIM, DESC_STREAM_LINK, Source_ParameterDB, DT_Raster1D);
//input from other module
mdi.AddInput(VAR_FLOW_OL, UNIT_DEPTH_MM, DESC_OLFLOW, Source_Module, DT_Raster1D);
mdi.AddInput(VAR_SNAC, UNIT_DEPTH_MM, DESC_SNAC, Source_Module, DT_Raster1D);
// set the output variables
mdi.AddOutput(VAR_SOER, UNIT_KG, DESC_SOER, DT_Raster1D);
mdi.AddOutput(VAR_USLE_LS, UNIT_NON_DIM, DESC_USLE_LS, DT_Raster1D);
// write out the XML file
string res = mdi.GetXMLDocument();
char *tmp = new char[res.size() + 1];
strprintf(tmp, res.size() + 1, "%s", res.c_str());
return tmp;
}
示例13: MetadataInformation
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char* MetadataInformation()
{
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Wu Hui");
mdi.SetClass(MCLS_SUR_RUNOFF, MCLSDESC_SUR_RUNOFF);
mdi.SetDescription(MDESC_SUR_CN);
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetHelpfile("SUR_CN.chm");
mdi.SetID(MID_SUR_CN);
mdi.SetName(MID_SUR_CN);
mdi.SetVersion("0.1");
mdi.SetWebsite(SEIMS_SITE);
mdi.AddParameter(VAR_T_SNOW, UNIT_TEMP_DEG, DESC_T_SNOW, Source_ParameterDB,DT_Single);
mdi.AddParameter(VAR_T_SOIL, UNIT_TEMP_DEG, DESC_T_SOIL, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_T0, UNIT_TEMP_DEG, DESC_T0, Source_ParameterDB,DT_Single);
mdi.AddParameter(VAR_S_FROZEN, UNIT_NON_DIM, DESC_S_FROZEN, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_CN2, UNIT_NON_DIM, DESC_CN2, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_MOIST_IN, UNIT_VOL_FRA_M3M3, DESC_MOIST_IN, Source_ParameterDB, DT_Raster1D);
mdi.AddParameter(VAR_ROOTDEPTH, UNIT_LEN_M,DESC_ROOTDEPTH,Source_ParameterDB,DT_Raster1D);
mdi.AddParameter(VAR_SOILDEPTH, UNIT_LEN_M, DESC_SOILDEPTH, Source_ParameterDB, DT_Raster2D);
mdi.AddParameter(VAR_FIELDCAP, UNIT_VOL_FRA_M3M3, DESC_FIELDCAP, Source_ParameterDB, DT_Raster2D);
mdi.AddParameter(VAR_POROST, UNIT_NON_DIM, DESC_POROST, Source_ParameterDB, DT_Raster2D);
mdi.AddParameter(VAR_WILTPOINT, UNIT_VOL_FRA_M3M3, DESC_WILTPOINT, Source_ParameterDB, DT_Raster2D);
mdi.AddInput(VAR_NEPR, UNIT_DEPTH_MM, DESC_NEPR, Source_Module,DT_Raster1D); //from interception module
mdi.AddInput(VAR_TMEAN, UNIT_TEMP_DEG, DESC_TMEAN, Source_Module, DT_Raster1D);
mdi.AddInput(VAR_DPST, UNIT_DEPTH_MM, DESC_DPST, Source_Module,DT_Raster1D); //from depression module
mdi.AddInput(VAR_SOTE, UNIT_TEMP_DEG, DESC_SOTE, Source_Module,DT_Raster1D); //from soil temperature module
mdi.AddInput(VAR_SNAC, UNIT_DEPTH_MM, DESC_SNAC, Source_Module,DT_Raster1D); //from snow accumulation module
mdi.AddInput(VAR_SNME, UNIT_DEPTH_MM, DESC_SNME, Source_Module,DT_Raster1D); //from snowmelt module
mdi.AddOutput(VAR_EXCP, UNIT_DEPTH_MM, DESC_EXCP, DT_Raster1D);// just for depression module.
mdi.AddOutput(VAR_INFIL, UNIT_DEPTH_MM, DESC_INFIL, DT_Raster1D);
mdi.AddOutput(VAR_SOMO, UNIT_VOL_FRA_M3M3, DESC_SOMO, DT_Raster2D);
// write out the XML file.
string res = mdi.GetXMLDocument();
char* tmp = new char[res.size()+1];
strprintf(tmp, res.size()+1, "%s", res.c_str());
return tmp;
}
示例14: strprintf
// function to return the XML Metadata document string
extern "C" SEIMS_MODULE_API const char *MetadataInformation()
{
string res = "";
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Wang Lin");
mdi.SetClass("Sediment Bound Nutrient OL", "Sediment Bound Nutrient Overland.");
mdi.SetDescription("Sediment Bound Nutrient Overland transport method using Knisel functions.");
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetHelpfile("SedBonNutrient_OL.chm");
mdi.SetID("SedBonNutrient_OL");
mdi.SetName("SedBonNutrient_OL");
mdi.SetVersion("0.1");
mdi.SetWebsite(SEIMS_SITE);
mdi.AddParameter("STORM_DT", "second", "Time step of the simulation", "file.in", DT_Single);
mdi.AddParameter(Tag_CellSize, UNIT_NON_DIM, DESC_CellSize, Source_ParameterDB, DT_Single);
mdi.AddParameter(Tag_CellWidth, UNIT_LEN_M, DESC_CellWidth, Source_ParameterDB, DT_Single);
mdi.AddParameter("Slope", "%", "Slope", "ParameterDB_WaterBalance", DT_Raster1D);
//mdi.AddParameter("Theta", "", "theta parameter for 4-point implicit finite difference", "ParameterDB_Discharge", DT_Single);
/*mdi.AddParameter("InitConc_P", "kg/kg", "Initial average concentration of P in the soil", "ParameterDB_soil", DT_Single);
mdi.AddParameter("InitConc_NH4", "kg/kg", "Initial average concentration of ammonium in the soil", "ParameterDB_soil", DT_Single);
mdi.AddParameter("InitConc_NO3", "kg/kg", "Initial average concentration of nitrate in the soil", "ParameterDB_soil", DT_Single);*/
mdi.AddParameter("Clay", "", "Clay proportion in soil", "ParameterDB_WaterBalance", DT_Raster1D);
mdi.AddParameter("Porosity", "m/m", "Soil porosity", "ParameterDB_WaterBalance", DT_Raster1D);
mdi.AddParameter("Density", "kg/m3", "Soil density", "ParameterDB_Discharge", DT_Raster1D);
mdi.AddParameter("CHWIDTH", "m", "Channel width", "ParameterDB_Discharge", DT_Raster1D);
mdi.AddInput("D_FlowWidth", "m", "Flow width of overland plane", "Module", DT_Raster1D);
//mdi.AddInput("D_FlowLen","m", "Flow length of overland plane","Module",DT_Raster);
mdi.AddParameter("STREAM_LINK", "", "Stream link", "ParameterDB_Discharge", DT_Raster1D);
mdi.AddParameter("Manning", "", "Manning's roughness", "ParameterDB_Discharge", DT_Raster1D);
//mdi.AddParameter("FLOW_DIR", "", "Flow direction by the rule of ArcGIS", "ParameterDB_Discharge", DT_Raster);
//mdi.AddParameter("FLOWOUT_INDEX", "", "The index of flow in cell in the compressed array", "ParameterDB_Discharge", DT_Array1D);
mdi.AddParameter("FLOWIN_INDEX_D8", "", "The index of flow in cell in the compressed array,"
" and the first element in each sub-array is the number of flow in cells in this sub-array",
"ParameterDB_Discharge", DT_Array2D);
mdi.AddParameter("ROUTING_LAYERS", "", "Routing layers according to the flow direction"
"There are not flow relationships within each layer, and the first element in each layer is the number of cells in the layer",
"ParameterDB_Discharge", DT_Array2D);
mdi.AddInput("D_QOverland", "m3/s", "Flux in the downslope boundary of cells", "Module", DT_Raster1D);
mdi.AddInput("D_SURU", "mm", "Water depth in the downslope boundary of cells", "Module", DT_Raster1D);
mdi.AddInput("D_INFIL", "mm", "Infiltration map of watershed", "Module", DT_Raster1D);
mdi.AddInput("D_DPST", "mm", "Distribution of depression storage", "Module", DT_Raster1D);
mdi.AddInput("D_HTOCH", "mm", "Water depth added to channel water depth", "Module", DT_Raster1D);
mdi.AddOutput("SedBonP", "kg/s", "distribution of dissovlved P", DT_Raster1D);
mdi.AddOutput("SedBonAmmonium", "kg/s", "distribution of nutrient, ammonium", DT_Raster1D);
mdi.AddOutput("SedBonPToCh", "kg", "dissovlved P flow to channel", DT_Raster1D);
mdi.AddOutput("SedBonAmmoniumToCh", "kg", "ammonium flow to channel", DT_Raster1D);
//test
mdi.AddOutput("TESTDPST", "mm", "Distribution of depression storage", DT_Raster1D);
//mdi.AddOutput("ID_OUTLET", "", "index of outlet in the compressed array", DT_Single);
// set the dependencies
mdi.AddDependency("Depression", "Calculate depression storage");
mdi.AddDependency("Overland routing", "Overland routing module"); //for WH
//mdi.AddDependency("Soil Detachment","Rain and overland soil detachment erosion module");
res = mdi.GetXMLDocument();
char *tmp = new char[res.size() + 1];
strprintf(tmp, res.size() + 1, "%s", res.c_str());
return tmp;
}
示例15: strprintf
extern "C" SEIMS_MODULE_API const char *MetadataInformation()
{
string res = "";
MetadataInfo mdi;
// set the information properties
mdi.SetAuthor("Liu Junzhi");
mdi.SetClass(MCLS_CH_ROUTING, MCLSDESC_CH_ROUTING);
mdi.SetDescription(MDESC_MUSK_CH);
mdi.SetEmail(SEIMS_EMAIL);
mdi.SetHelpfile("MUSK_CH.chm");
mdi.SetID(MID_MUSK_CH);
mdi.SetName(MID_MUSK_CH);
mdi.SetVersion("0.2");
mdi.SetWebsite(SEIMS_SITE);
mdi.AddParameter(Tag_ChannelTimeStep, UNIT_SECOND, DESC_TIMESTEP, File_Input, DT_Single);
mdi.AddParameter(VAR_K_CHB, UNIT_WTRDLT_MMH, DESC_K_CHB, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_K_BANK, UNIT_WTRDLT_MMH, DESC_K_BANK, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_EP_CH, UNIT_WTRDLT_MMH, DESC_EP_CH, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_BNK0, UNIT_STRG_M3M, DESC_BNK0, Source_ParameterDB, DT_Single);
//mdi.AddParameter(VAR_CHS0, UNIT_STRG_M3M, DESC_CHS0, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_CHS0_PERC, UNIT_NON_DIM, DESC_CHS0_PERC, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_VSEEP0, UNIT_FLOW_CMS, DESC_VSEEP0, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_A_BNK, UNIT_NON_DIM, DESC_A_BNK, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_B_BNK, UNIT_NON_DIM, DESC_B_BNK, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_MSK_X, UNIT_NON_DIM, DESC_MSK_X, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_MSK_CO1, UNIT_NON_DIM, DESC_MSK_CO1, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_VSF, UNIT_NON_DIM, DESC_VSF, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_GWRQ, UNIT_FLOW_CMS, DESC_GWRQ, Source_ParameterDB, DT_Single);
mdi.AddParameter(VAR_SUBBSN, UNIT_NON_DIM, DESC_SUBBSN, Source_ParameterDB, DT_Raster1D);
// add reach information
mdi.AddParameter(VAR_REACH_PARAM, UNIT_NON_DIM, DESC_REACH_PARAM, Source_ParameterDB, DT_Reach);
// add BMPs management operations, such as point source discharge
mdi.AddParameter(VAR_SCENARIO, UNIT_NON_DIM, DESC_SCENARIO, Source_ParameterDB, DT_Scenario);
mdi.AddInput(VAR_SBOF, UNIT_FLOW_CMS, DESC_SBOF, Source_Module, DT_Array1D);
mdi.AddInput(VAR_SBIF, UNIT_FLOW_CMS, DESC_SBIF, Source_Module, DT_Array1D);
mdi.AddInput(VAR_SBQG, UNIT_FLOW_CMS, DESC_SBQG, Source_Module, DT_Array1D);
mdi.AddInput(VAR_SBPET, UNIT_DEPTH_MM, DESC_SBPET, Source_Module, DT_Array1D);
mdi.AddInput(VAR_SBGS, UNIT_DEPTH_MM, DESC_SBGS, Source_Module, DT_Array1D);
mdi.AddOutput(VAR_QRECH, UNIT_FLOW_CMS, DESC_QRECH, DT_Array1D);
mdi.AddOutput(VAR_QOUTLET, UNIT_FLOW_CMS, DESC_QOUTLET, DT_Single);
mdi.AddOutput(VAR_QSOUTLET, UNIT_FLOW_CMS, DESC_QSOUTLET, DT_Single);
mdi.AddOutput(VAR_QS, UNIT_NON_DIM, DESC_QS, DT_Array1D);
mdi.AddOutput(VAR_QI, UNIT_NON_DIM, DESC_QI, DT_Array1D);
mdi.AddOutput(VAR_QG, UNIT_NON_DIM, DESC_QG, DT_Array1D);
mdi.AddOutput(VAR_CHST, UNIT_VOL_M3, DESC_CHST, DT_Array1D);
mdi.AddOutput(VAR_PRECHST, UNIT_VOL_M3, DESC_PRECHST, DT_Array1D);
mdi.AddOutput(VAR_BKST, UNIT_VOL_M3, DESC_BKST, DT_Array1D);
mdi.AddOutput(VAR_SEEPAGE, UNIT_VOL_M3, DESC_SEEPAGE, DT_Array1D);
mdi.AddOutput(VAR_CHWTDEPTH, UNIT_LEN_M, DESC_CHWTDEPTH, DT_Array1D);
mdi.AddOutput(VAR_CHWTWIDTH, UNIT_LEN_M, DESC_CHWTWIDTH, DT_Array1D);
mdi.AddOutput(VAR_CHBTMWIDTH, UNIT_LEN_M, DESC_CHBTMWIDTH, DT_Array1D);
mdi.AddOutput(VAR_PRECHWTDEPTH, UNIT_LEN_M, DESC_PRECHWTDEPTH, DT_Array1D);
res = mdi.GetXMLDocument();
char *tmp = new char[res.size() + 1];
strprintf(tmp, res.size() + 1, "%s", res.c_str());
return tmp;
}