int MDWTempRiverRouteDef () { int optID = MFUnset, waterBalanceID; const char *optStr; const char *options [] = { "none", "calculate", (char *) NULL }; if (_MDWTempRiverRouteID != MFUnset) return (_MDWTempRiverRouteID); MFDefEntering ("Route river temperature"); if (((optStr = MFOptionGet (MDOptReservoirs)) == (char *) NULL) || ((optID = CMoptLookup ( options, optStr, true)) == CMfailed)) { CMmsgPrint(CMmsgUsrError,"Reservoir Option not specified! Option none or calculate"); return CMfailed; } if (optID==1) { if ((( waterBalanceID = MDWaterBalanceDef ()) == CMfailed) || ((_MDInResStorageChangeID = MFVarGetID (MDVarReservoirStorageChange, "km3", MFInput, MFState, MFBoundary)) == CMfailed) || //RJS 071511 ((_MDInResStorageID = MFVarGetID (MDVarReservoirStorage, "km3", MFInput, MFState, MFInitial)) == CMfailed) || //RJS 121311 changed from MFBoundary to MFInitial ((_MDInResCapacityID = MFVarGetID (MDVarReservoirCapacity, "km3", MFInput, MFState, MFBoundary)) == CMfailed)) return (CMfailed); } //input if (((_MDInDischargeID = MDDischargeDef ()) == CMfailed) || (( waterBalanceID = MDWaterBalanceDef ()) == CMfailed) || ((_MDInSolarRadID = MDSolarRadDef ()) == CMfailed) || ((_MDInWTempRiverID = MDWTempRiverDef ()) == CMfailed) || ((_MDInRiverWidthID = MDRiverWidthDef ()) == CMfailed) || ((_MDInRunoffVolumeID = MDRunoffVolumeDef ()) == CMfailed) || ((_MDInWdl_QxTID = MDThermalInputsDef ()) == CMfailed) || //RJS 072011 ((_MDInDischargeIncomingID = MFVarGetID (MDVarDischarge0, "m3/s", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInWindSpeedID = MFVarGetID (MDVarWindSpeed, "m/s", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInAirTemperatureID = MFVarGetID (MDVarAirTemperature, "degC", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInCloudCoverID = MFVarGetID (MDVarCloudCover, "%", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInRiverStorageChgID = MFVarGetID (MDVarRiverStorageChg, "m3/s", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInRiverStorageID = MFVarGetID (MDVarRiverStorage, "m3", MFInput, MFState, MFInitial)) == CMfailed) || ((_MDInSnowPackID = MFVarGetID (MDVarSnowPack, "mm", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInWarmingTempID = MFVarGetID (MDVarWarmingTemp, "degC", MFInput, MFState, MFBoundary)) == CMfailed) || //RJS 072011 ((_MDInThermalWdlID = MFVarGetID (MDVarThermalWdl, "-", MFInput, MFState, MFBoundary)) == CMfailed) || //RJS 072011 // output ((_MDLocalIn_QxTID = MFVarGetID (MDVarBgcLocalIn_QxT, "m3*degC/d", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDRemoval_QxTID = MFVarGetID (MDVarRemoval_QxT, "m3*degC/d", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDFlux_QxTID = MFVarGetID (MDVarFlux_QxT, "m3*degC/d", MFRoute, MFFlux, MFBoundary)) == CMfailed) || ((_MDStorage_QxTID = MFVarGetID (MDVarStorage_QxT, "m3*degC", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDDeltaStorage_QxTID = MFVarGetID (MDVarDeltaStorage_QxT, "m3*degC/d", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDWTemp_QxTID = MFVarGetID (MDVarWTemp_QxT, "degC", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDWTempDeltaT_QxTID = MFVarGetID (MDVarWTempDeltaT_QxT, "degC", MFOutput, MFState, MFBoundary)) == CMfailed) || //output mixing ((_MDFluxMixing_QxTID = MFVarGetID (MDVarFluxMixing_QxT, "m3*degC/d", MFRoute, MFFlux, MFBoundary)) == CMfailed) || ((_MDStorageMixing_QxTID = MFVarGetID (MDVarStorageMixing_QxT, "m3*degC", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDDeltaStorageMixing_QxTID = MFVarGetID (MDVarDeltaStorageMixing_QxT, "m3*degC/d", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDWTempMixing_QxTID = MFVarGetID (MDVarWTempMixing_QxT, "degC", MFOutput, MFState, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDWTempRiverRoute) == CMfailed)) return (CMfailed); MFDefLeaving ("Route river temperature"); return (_MDWTemp_QxTID); }
int MDBgcDINRoutingDef () { int optID = MFUnset; const char *optStr; const char *options [] = { "none", "calculate", (char *) NULL }; //const char *options [] = { MDNoneStr, (char *) NULL }; if (_MDFlux_DINID != MFUnset) return (_MDFlux_DINID); MFDefEntering ("DIN Routing Calculation"); if (((optStr = MFOptionGet (MDOptReservoirs)) == (char *) NULL) || ((optID = CMoptLookup ( options, optStr, true)) == CMfailed)) { CMmsgPrint(CMmsgUsrError,"Reservoir Option not specified! Option none or calculate \n"); return CMfailed; } if (optID==1){ // printf ("Resoption=%i\n",optID); if (((_MDInResStorageID = MFVarGetID (MDVarReservoirStorage, "km3", MFInput, MFState, MFInitial)) == CMfailed) || ((_MDInResStorageChangeID = MFVarGetID (MDVarReservoirStorageChange, "km3/s", MFInput, MFState, MFBoundary)) == CMfailed)) return CMfailed; } // Input if (((_MDInDischargeID = MDDischargeDef ()) == CMfailed) || ((_MDInRiverWidthID = MDRiverWidthDef ()) == CMfailed) || ((_MDInRunoffVolumeID = MDRunoffVolumeDef ()) == CMfailed) || ((_MDInRunoffID = MDRunoffDef ()) == CMfailed) || ((_MDInWTempRiverRouteID = MDWTempRiverRouteDef ()) == CMfailed) || ((_MDInRiverStorageChgID = MFVarGetID (MDVarRiverStorageChg, "m3/s", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInRiverStorageID = MFVarGetID (MDVarRiverStorage, "m3", MFInput, MFState, MFInitial)) == CMfailed) || ((_MDInPointScenarioID = MFVarGetID (MDVarPointScenario, MFNoUnit, MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDNonPoint_DINID = MFVarGetID (MDVarBGCNonPoint_DIN, "kg/m3", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDPointSources_DINID = MFVarGetID (MDVarBGCPointSources_DIN, "kg/day", MFInput, MFState, MFBoundary)) == CMfailed) || // Output ((_MDLocalIn_DINID = MFVarGetID (MDVarDINLocalIn, "kg/d", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDRemoval_DINID = MFVarGetID (MDVarDINRemoval, "kg/d", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDConc_DINID = MFVarGetID (MDVarDINConcentration, "kg/m3", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDStorage_DINID = MFVarGetID (MDVarDINStorage, "kg", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDDeltaStorage_DINID = MFVarGetID (MDVarDINDeltaStorage, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDFlux_DINID = MFVarGetID (MDVarDINFlux , "kg/day", MFRoute, MFFlux, MFBoundary)) == CMfailed) || ((_MDConcMixing_DINID = MFVarGetID (MDVarDINConcentration_Mixing, "kg/m3", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDStorageMixing_DINID = MFVarGetID (MDVarDINStorage_Mixing, "kg", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDDeltaStorageMixing_DINID = MFVarGetID (MDVarDINDeltaStorage_Mixing, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDFluxMixing_DINID = MFVarGetID (MDVarDINFlux_Mixing , "kg/day", MFRoute, MFFlux, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDDINRouting) == CMfailed)) return (CMfailed); MFDefLeaving ("DIN Routing Calculation"); return (_MDFlux_DINID); }