int MDBaseFlowDef () { float par; const char *optStr; if (_MDOutBaseFlowID != MFUnset) return (_MDOutBaseFlowID); MFDefEntering ("Base flow"); if (((optStr = MFOptionGet (MDParGroundWatBETA)) != (char *) NULL) && (sscanf (optStr,"%f",&par) == 1)) _MDGroundWatBETA = par; if (((_MDInRechargeID = MDRainInfiltrationDef ()) == CMfailed) || ((_MDInIrrGrossDemandID = MDIrrGrossDemandDef ()) == CMfailed)) return (CMfailed); if ( _MDInIrrGrossDemandID != MFUnset) { if (((_MDInSmallResReleaseID = MDSmallReservoirReleaseDef ()) == CMfailed) || ((_MDInIrrAreaFracID = MDIrrigatedAreaDef ()) == CMfailed) || ((_MDInIrrReturnFlowID = MFVarGetID (MDVarIrrReturnFlow, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutIrrUptakeExternalID = MFVarGetID (MDVarIrrUptakeExternal, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutIrrUptakeGrdWaterID = MDIrrUptakeGrdWaterDef ()) == CMfailed)) return CMfailed; } if (((_MDOutGrdWatID = MFVarGetID (MDVarGroundWater, "mm", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutGrdWatChgID = MFVarGetID (MDVarGroundWaterChange, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutGrdWatRechargeID = MFVarGetID (MDVarGroundWaterRecharge, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutGrdWatUptakeID = MFVarGetID (MDVarGroundWaterUptake, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutBaseFlowID = MFVarGetID (MDVarBaseFlow, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDBaseFlow) == CMfailed)) return (CMfailed); MFDefLeaving ("Base flow "); return (_MDOutBaseFlowID); }
int MDBaseFlowDef () { float par; const char *optStr; // Test if the percolation pathway is active (if its not - PercolationBETA should not be in the Options) if ((optStr = MFOptionGet(MDParSoilPercolationBETA)) != (char *) NULL) { if ((_MDInSoilPercolationID = MFVarGetID (MDVarSoilPercolation, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) return (CMfailed); // SZ 10212014 } int optID = MFUnset; // RJS 060214 const char *optName = MDVarRunoff; // RJS 060214 const char *options [] = { "spatially", MDCalculateStr, MDPnETStr, (char *) NULL }; // RJS 060214 if (_MDOutBaseFlowID != MFUnset) return (_MDOutBaseFlowID); MFDefEntering ("Base flow"); if ((optStr = MFOptionGet (optName)) != (char *) NULL) optID = CMoptLookup (options, optStr, true); // RJS 060214 switch (optID) { case MDspatial: if ((_MDInGroundWatBETAID = MFVarGetID(MDParGroundWatBETA, "1/d", MFInput, MFState, MFBoundary)) == CMfailed) return (CMfailed); case MDcalculate: if (_MDInGroundWatBETAID == MFUnset) { if (((optStr = MFOptionGet (MDParGroundWatBETA)) != (char *) NULL) && (sscanf (optStr,"%f",&par) == 1)) _MDGroundWatBETA = par; } if (((_MDInRechargeID = MDRainInfiltrationDef ()) == CMfailed) || ((_MDInIrrGrossDemandID = MDIrrGrossDemandDef ()) == CMfailed)) return (CMfailed); if ( _MDInIrrGrossDemandID != MFUnset) { if (((_MDInSmallResReleaseID = MDSmallReservoirReleaseDef ()) == CMfailed) || ((_MDInIrrAreaFracID = MDIrrigatedAreaDef ()) == CMfailed) || ((_MDInIrrReturnFlowID = MFVarGetID (MDVarIrrReturnFlow, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutIrrUptakeExternalID = MFVarGetID (MDVarIrrUptakeExternal, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutIrrUptakeGrdWaterID = MDIrrUptakeGrdWaterDef ()) == CMfailed)) return CMfailed; } if (((_MDOutGrdWatID = MFVarGetID (MDVarGroundWater, "mm", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutGrdWatChgID = MFVarGetID (MDVarGroundWaterChange, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutGrdWatRechargeID = MFVarGetID (MDVarGroundWaterRecharge, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutGrdWatUptakeID = MFVarGetID (MDVarGroundWaterUptake, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutBaseFlowID = MFVarGetID (MDVarBaseFlow, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDBaseFlow) == CMfailed)) return (CMfailed); break; case MDPnET: if (_MDInGroundWatBETAID == MFUnset) { if (((optStr = MFOptionGet (MDParGroundWatBETA)) != (char *) NULL) && (sscanf (optStr,"%f",&par) == 1)) _MDGroundWatBETA = par; } if (((_MDInRechargeID = MDRainInfiltrationDef ()) == CMfailed) || ((_MDOutGrdWatID = MFVarGetID (MDVarGroundWater, "mm", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutGrdWatChgID = MFVarGetID (MDVarGroundWaterChange, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutGrdWatRechargeID = MFVarGetID (MDVarGroundWaterRecharge, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutGrdWatUptakeID = MFVarGetID (MDVarGroundWaterUptake, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutBaseFlowID = MFVarGetID (MDVarBaseFlow, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDBaseFlow2) == CMfailed)) return (CMfailed); // RJS 061312 break; } MFDefLeaving ("Base flow "); return (_MDOutBaseFlowID); }
int MDWaterBalanceDef() { MFDefEntering ("WaterBalance"); if (( MDAccumBalanceDef () == CMfailed) || ((_MDInPrecipID = MDPrecipitationDef ()) == CMfailed) || ((_MDInDischargeID = MDDischargeDef ()) == CMfailed) || ((_MDInSnowPackChgID = MDSPackChgDef ()) == CMfailed) || ((_MDInSoilMoistChgID = MDSoilMoistChgDef ()) == CMfailed) || ((_MDInRunoffID = MDRunoffDef ()) == CMfailed) || ((_MDInEvaptrsID = MFVarGetID (MDVarEvapotranspiration, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInGrdWatChgID = MFVarGetID (MDVarGroundWaterChange, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInRunoffPoolChgID = MFVarGetID (MDVarRunoffPoolChg, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutWaterBalanceID = MFVarGetID (MDVarWaterBalance, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || (MFModelAddFunction(_MDWaterBalance) == CMfailed)) return (CMfailed); if ((_MDInIrrGrossDemandID = MDIrrGrossDemandDef ()) != MFUnset) { if ((_MDInIrrGrossDemandID == CMfailed) || ((_MDInIrrUptakeRiverID = MDIrrUptakeRiverDef ()) == CMfailed) || ((_MDInIrrUptakeGrdWaterID = MDIrrUptakeGrdWaterDef ()) == CMfailed) || ((_MDInIrrSoilMoistChgID = MDIrrSoilMoistChgDef ()) == CMfailed) || ((_MDInIrrAreaFracID = MDIrrigatedAreaDef ())== CMfailed) || ((_MDInIrrEvapotranspID = MFVarGetID (MDVarIrrEvapotranspiration, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInIrrReturnFlowID = MFVarGetID (MDVarIrrReturnFlow, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInIrrUptakeExcessID = MFVarGetID (MDVarIrrUptakeExcess, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutIrrUptakeBalanceID = MFVarGetID (MDVarIrrUptakeBalance, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutIrrWaterBalanceID = MFVarGetID (MDVarIrrWaterBalance, "mm", MFOutput, MFFlux, MFBoundary)) == CMfailed)) return (CMfailed); if ((_MDInSmallResReleaseID = MDSmallReservoirReleaseDef ()) != MFUnset) { if (( _MDInSmallResReleaseID == CMfailed) || ((_MDInSmallResEvapoID = MFVarGetID (MDVarSmallResEvaporation, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInSmallResStorageChgID = MFVarGetID (MDVarSmallResStorageChange, "mm", MFInput, MFState, MFInitial)) == CMfailed)) return (CMfailed); } } MFDefLeaving ("WaterBalance"); return (_MDOutWaterBalanceID); }