int MDRiverbedShapeExponentDef () { int optID = MFUnset; const char *optStr, *optName = MDOptRiverbed; const char *options [] = { MDInputStr, "slope-independent", "slope-dependent", "multi-basin", (char *) NULL }; if (_MDOutRiverbedShapeExponentID != MFUnset) return (_MDOutRiverbedShapeExponentID); MFDefEntering ("Riverbed Geometry"); if ((optStr = MFOptionGet (optName)) != (char *) NULL) optID = CMoptLookup (options,optStr,true); switch (optID) { case MDinput: if (((_MDOutRiverbedAvgDepthMeanID = MFVarGetID (MDVarRiverbedAvgDepthMean, "m", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedWidthMeanID = MFVarGetID (MDVarRiverbedWidthMean, "m", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedVelocityMeanID = MFVarGetID (MDVarRiverbedVelocityMean, "m/s", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedShapeExponentID = MFVarGetID (MDVarRiverbedShapeExponent, MFNoUnit, MFInput, MFState, MFBoundary)) == CMfailed)) return (CMfailed); break; case MDdependent: if ((_MDInRiverbedSlopeID = MFVarGetID (MDVarRiverbedSlope, "m/km", MFInput, MFState, MFBoundary)) == CMfailed) return (CMfailed); case MDindependent: if (((_MDInDischMeanID = MDDischMeanDef ()) == CMfailed) || ((_MDInEtaID = MFVarGetID (MDVarEta, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInNuID = MFVarGetID (MDVarNu, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInTauID = MFVarGetID (MDVarTau, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInPhiID = MFVarGetID (MDVarPhi, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedAvgDepthMeanID = MFVarGetID (MDVarRiverbedAvgDepthMean, "m", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedWidthMeanID = MFVarGetID (MDVarRiverbedWidthMean, "m", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedVelocityMeanID = MFVarGetID (MDVarRiverbedVelocityMean, "m/s", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedShapeExponentID = MFVarGetID (MDVarRiverbedShapeExponent, MFNoUnit, MFOutput, MFState, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDRiverbedShapeExponent) == CMfailed)) return (CMfailed); break; case MDmultibasin: if (((_MDInDischMeanID = MDDischMeanDef ()) == CMfailed) || ((_MDInEtaID = MFVarGetID (MDVarEta, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInNuID = MFVarGetID (MDVarNu, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInTauID = MFVarGetID (MDVarTau, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInPhiID = MFVarGetID (MDVarPhi, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInEta2ID = MFVarGetID (MDVarEta2, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInNu2ID = MFVarGetID (MDVarNu2, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInTau2ID = MFVarGetID (MDVarTau2, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInPhi2ID = MFVarGetID (MDVarPhi2, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInEta3ID = MFVarGetID (MDVarEta3, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInNu3ID = MFVarGetID (MDVarNu3, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInTau3ID = MFVarGetID (MDVarTau3, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInPhi3ID = MFVarGetID (MDVarPhi3, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInBasinID = MFVarGetID (MDVarBasinID, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedAvgDepthMeanID = MFVarGetID (MDVarRiverbedAvgDepthMean, "m", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedWidthMeanID = MFVarGetID (MDVarRiverbedWidthMean, "m", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedVelocityMeanID = MFVarGetID (MDVarRiverbedVelocityMean, "m/s", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutRiverbedShapeExponentID = MFVarGetID (MDVarRiverbedShapeExponent, MFNoUnit, MFOutput, MFState, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDMultiRiverbedShapeExponent) == CMfailed)) return (CMfailed); break; default: MFOptionMessage (optName, optStr, options); return (CMfailed); } MFDefLeaving ("Riverbed Geometry"); return (_MDOutRiverbedShapeExponentID); }
int MDReservoirDef () { int optID = MFUnset; const char *optStr, *optName = MDOptReservoirs; const char *options [] = { MDNoneStr, MDCalculateStr, (char *) NULL }; if ((optStr = MFOptionGet (optName)) != (char *) NULL) optID = CMoptLookup (options, optStr, true); if ((optID == MDnone) || (_MDOutResReleaseID != MFUnset)) return (_MDOutResReleaseID); MFDefEntering ("Reservoirs"); switch (optID) { case MDcalculate: if (((_MDInDischMeanID = MDDischMeanDef ()) == CMfailed) || ((_MDInDischargeID = MDDischLevel2Def ()) == CMfailed) || ((_MDInResCapacityID = MFVarGetID (MDVarReservoirCapacity, "km3", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDOutResStorageID = MFVarGetID (MDVarReservoirStorage, "km3", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutResStorageChgID = MFVarGetID (MDVarReservoirStorageChange, "km3", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutResReleaseID = MFVarGetID (MDVarReservoirRelease, "m3/s", MFOutput, MFFlux, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDReservoir) == CMfailed)) return (CMfailed); break; default: MFOptionMessage (optName, optStr, options); return (CMfailed); } MFDefLeaving ("Reservoirs"); return (_MDOutResReleaseID); }
int MDBQARTpreprocessDef() { MFDefEntering ("QBARTpreprocess"); if (((_MDInDischargeID = MDDischargeDef ()) == CMfailed) || ((_MDInDischMeanID = MDDischMeanDef ()) == CMfailed) || ((_MDInAirTempID = MFVarGetID (MDVarAirTemperature,"degC", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInContributingAreaAccID = MFVarGetID (MDVarContributingAreaAcc, "km2", MFRoute, MFState, MFBoundary)) == CMfailed) || //((_MDInElevationID = MFVarGetID (MDVarElevation, "m", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInAirTempAcc_timeID = MFVarGetID (MDVarAirTemperatureAcc_time,"degC",MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDInAirTempAcc_spaceID = MFVarGetID (MDVarAirTemperatureAcc_space,"degC",MFRoute, MFState, MFBoundary)) == CMfailed) || //((_MDOutElevationMaxID = MFVarGetID (MDVarElevationMax,"km",MFRoute, MFState, MFBoundary)) == CMfailed) || ((_MDInDischargeAccID = MFVarGetID (MDVarDischargeAcc, "m3/s",MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDInTimeStepsID = MFVarGetID (MDVarTimeSteps, MFNoUnit,MFOutput, MFState, MFInitial)) == CMfailed) || // output ((_MDOutBQART_AID = MFVarGetID (MDVarBQART_A, "km2", MFRoute, MFState, MFBoundary)) == CMfailed) || ((_MDOutBQART_RID = MFVarGetID (MDVarBQART_R, "km" , MFRoute, MFState, MFBoundary)) == CMfailed) || ((_MDOutBQART_Qbar_m3sID = MFVarGetID (MDVarBQART_Qbar_m3s, "m3s", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutBQART_Qbar_km3yID = MFVarGetID (MDVarBQART_Qbar_km3y, "km3/y", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutBQART_TID = MFVarGetID (MDVarBQART_T, "degC", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutDischMaxID = MFVarGetID(MDVarDischMax, "m3/s", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutYearCountID = MFVarGetID(MDVarYearCount, "", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutLogQMaxM2ID = MFVarGetID(MDVarLogQMaxM2, "m3/s", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutLogQMaxM3ID = MFVarGetID(MDVarLogQMaxM3, "m3/s", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutMeanLogQMaxID = MFVarGetID(MDVarMeanLogQMax , "m3/s", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDInBankfullQ5ID = MDBankfullQcalcDef()) == CMfailed) || (MFModelAddFunction (_MDQBARTpreprocess) == CMfailed)) return (CMfailed); MFDefLeaving ("QBARTpreprocess"); return (_MDOutBQART_TID); }