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); }
int MDSpecCondDef () { int optID = MFUnset; //SZ 08212014 const char *optStr, *optName = MDOptSpecConductance; //SZ 08212014 const char *options [] = { MDCalculateStr, MDInputStr, MDInput2Str, MDNoneStr, (char *) NULL }; //SZ 08212014 MFDefEntering ("Specific Conductance Routing"); if ((optStr = MFOptionGet (optName)) != (char *) NULL) optID = CMoptLookup (options, optStr, true); //SZ 08212014 switch (optID) { //SZ 08212014 case MDcalculate: if ( // ((_MDInDischargeID = MDDischargeDef()) == CMfailed ) || ((_MDInDINFluxID = MDDINDef ()) == CMfailed) || // Needed for merging with upstream ((_MDInWTempRiverID = MFVarGetID (MDVarWTemp_QxT, "degC", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInRiverWidthID = MDRiverWidthDef ()) == CMfailed) || // ((_MDInLitterFall_POCID = MDLitterFallDef ()) == CMfailed) || // ((_MDInLocalLoad_DOCID = MFVarGetID (MDVarLocalLoadDOC, "kg/d", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInDischarge0ID = MFVarGetID (MDVarDischarge0, "m3/s", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInDischargeID = MFVarGetID (MDVarDischarge, "m3/s", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInRiverStorageID = MFVarGetID (MDVarRiverStorage, "m3/day", MFInput, MFState, MFInitial)) == CMfailed) || ((_MDInBaseFlowID = MFVarGetID (MDVarBaseFlow, "mm", MFInput, MFFlux,MFBoundary)) == CMfailed) || ((_MDInStormRunoffTotalID = MFVarGetID (MDVarStormRunoffTotal, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInRunoffPoolReleaseID = MFVarGetID (MDVarRunoffPoolRelease, "mm", MFInput, MFFlux, MFBoundary)) == CMfailed) || ((_MDInAirTemperatureID = MFVarGetID (MDVarAirTemperature, "degC", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInSubFractionID = MFVarGetID (MDVarLandUseSpatialSub, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDOutLocalLoadSCID = MFVarGetID (MDVarLocalLoadSC, "ic/d", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutPostConc_SCID = MFVarGetID (MDVarPostSpecCond, "uS/cm", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutStoreWater_SCID = MFVarGetID (MDVarStoreWaterSC, "ic/day", MFOutput, MFState, MFInitial)) == CMfailed) || ((_MDOutFlux_SCID = MFVarGetID (MDVarFluxSC, "ic/day", MFRoute, MFFlux, MFBoundary)) == CMfailed) || (MFModelAddFunction (_MDSpecCond) == CMfailed)) return (CMfailed); break; default: MFOptionMessage (optName, optStr, options); return (CMfailed); } MFDefLeaving ("Specific Conductance Routing"); return (_MDOutFlux_SCID); }
int MDDINDef () { float par1; //RJS 032509 float par2; //RJS 032509 float par3; //RJS 032509 float par4; //RJS 032509 float par5; //RJS 032509 float par6; //RJS 033009 float par7; //RJS 033009 const char *optStr1, *optStr2, *optStr3, *optStr4, *optStr5, *optStr6, *optStr7; //RJS 032509 if (((optStr1 = MFOptionGet (MDParAlphaSTS)) != (char *) NULL) && (sscanf (optStr1,"%f",&par1) == 1)) _MDAlphaSTS = par1; // RJS 032509 if (((optStr2 = MFOptionGet (MDParAlphaHTS)) != (char *) NULL) && (sscanf (optStr2,"%f",&par2) == 1)) _MDAlphaHTS = par2; // RJS 032509 if (((optStr3 = MFOptionGet (MDParASTSA)) != (char *) NULL) && (sscanf (optStr3,"%f",&par3) == 1)) _MDASTSA = par3; // RJS 032509 if (((optStr4 = MFOptionGet (MDParAHTSA)) != (char *) NULL) && (sscanf (optStr4,"%f",&par4) == 1)) _MDAHTSA = par4; // RJS 032509 if (((optStr5 = MFOptionGet (MDParUptakeKtMC)) != (char *) NULL) && (sscanf (optStr5,"%f",&par5) == 1)) _MDUptakeKtMC = par5; // RJS 033009 if (((optStr6 = MFOptionGet (MDParUptakeKtSTS)) != (char *) NULL) && (sscanf (optStr6,"%f",&par6) == 1)) _MDUptakeKtSTS = par6; // RJS 033009 if (((optStr7 = MFOptionGet (MDParUptakeKtHTS)) != (char *) NULL) && (sscanf (optStr7,"%f",&par7) == 1)) _MDUptakeKtHTS = par7; // RJS 033009 MFDefEntering ("N Processing"); // Input if ( ((_MDWTemp_QxTID = MDThermalInputs3Def ()) == CMfailed) || // comment out for no plants // ((_MDWTemp_QxTID = MDWTempRiverRouteDef()) == CMfailed) || ((_MDInDischarge0ID = MFVarGetID (MDVarDischarge0, "m3/s", MFRoute, MFState, MFBoundary)) == CMfailed) || // RJS 01-06-09 includes local cells runoff ((_MDInDischargeID = MFVarGetID (MDVarDischarge, "m3/s", MFRoute, MFState, MFBoundary)) == CMfailed) || ((_MDInRiverStorageID = MFVarGetID (MDVarRiverStorage, "m3/day", MFInput, MFState, MFInitial)) == CMfailed) || // RJS 01-06-09 m3/day instead of m3/s ((_MDInRiverStorageChgID = MFVarGetID (MDVarRiverStorageChg, "m3/day", MFInput, MFState, MFBoundary)) == CMfailed) || // RJS 01-06-09 ((_MDInRiverOrderID = MFVarGetID (MDVarRiverOrder, "-", MFInput, MFState, MFBoundary)) == CMfailed) || //RJS 112211 ((_MDInRiverWidthID = MDRiverWidthDef ()) == CMfailed) || ((_MDInRiverDepthID = MFVarGetID (MDVarRiverDepth, "m", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDInLocalLoad_DINID = MDNitrogenInputsDef()) == CMfailed) || // RJS 091108 ((_MDInVfAdjustID = MFVarGetID (MDVfAdjust, "-", MFInput, MFState, MFBoundary)) == CMfailed) || ((_MDFlux_DINID = MFVarGetID (MDVarFluxDIN, "kg/day", MFRoute, MFFlux, MFBoundary)) == CMfailed) || // RJS 091408 ((_MDStoreWater_DINID = MFVarGetID (MDVarStoreWaterDIN, "kg/day", MFOutput, MFState, MFInitial)) == CMfailed) || // RJS 091108 ((_MDInRunoffVolID = MFVarGetID (MDVarRunoffVolume, "m3/s", MFInput, MFState, MFBoundary)) == CMfailed) || // RJS 091108 ((_MDInTnQ10ID = MFVarGetID (MDVarTnQ10, "-", MFInput, MFState, MFBoundary)) == CMfailed) || //RJS 102410 // Output ((_MDOutPostConc_DINID = MFVarGetID (MDVarPostConcDIN, "mg/L", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutPreConc_DINID = MFVarGetID (MDVarPreConcDIN, "mg/L", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutTotalMassRemovedTS_DINID = MFVarGetID (MDVarTotalMassRemovedTSDIN, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutTotalMassRemovedDZ_DINID = MFVarGetID (MDVarTotalMassRemovedDZDIN, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutTotalMassRemovedHZ_DINID = MFVarGetID (MDVarTotalMassRemovedHZDIN, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutTotalMassRemovedMC_DINID = MFVarGetID (MDVarTotalMassRemovedMCDIN, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || ((_MDOutTotalMassRemoved_DINID = MFVarGetID (MDVarTotalMassRemovedDIN, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || // RJS 032509 ((_MDOutTimeOfStorageDZID = MFVarGetID (MDVarTimeOfStorageDZ, "days", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutTimeOfStorageHZID = MFVarGetID (MDVarTimeOfStorageHZ, "days", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutTimeOfStorageMCID = MFVarGetID (MDVarTimeOfStorageMC, "days", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 120608 ((_MDOutTransferDZID = MFVarGetID (MDVarTransferDZ, "m3/s", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutTransferHZID = MFVarGetID (MDVarTransferHZ, "m3/s", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutPreFlux_DINID = MFVarGetID (MDVarPreFluxDIN, "kg/day", MFOutput, MFState, MFBoundary)) == CMfailed) || //RJS 050911 ((_MDOutWaterDZID = MFVarGetID (MDVarWaterDZ, "m3", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutWaterHZID = MFVarGetID (MDVarWaterHZ, "m3", MFOutput, MFState, MFBoundary)) == CMfailed) || ((_MDOutUptakeVfID = MFVarGetID (MDVarUptakeVf, "m/day", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 090508 ((_MDFluxMixing_DINID = MFVarGetID (MDVarFluxMixingDIN, " kg/day", MFRoute, MFFlux, MFBoundary)) == CMfailed) || // RJS 091108 ((_MDStoreWaterMixing_DINID = MFVarGetID (MDVarStoreWaterMixingDIN, "kg/day", MFOutput, MFState, MFInitial)) == CMfailed) || // RJS 091108 ((_MDOutTotalMassPre_DINID = MFVarGetID (MDVarTotalMassPreDIN, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || // RJS 091408 ((_MDOutConcMixing_DINID = MFVarGetID (MDVarConcMixing, "mg/L", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 091108 ((_MDOutMassBalance_DINID = MFVarGetID (MDVarMassBalanceDIN, "kg/kg", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 110308 ((_MDOutMassBalanceMixing_DINID = MFVarGetID (MDVarMassBalanceMixingDIN, "kg/kg", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 110308 ((_MDOutRemovalDZID = MFVarGetID (MDVarRemovalDZ, "kg/kg", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 110708 ((_MDOutRemovalHZID = MFVarGetID (MDVarRemovalHZ, "kg/kg", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 110708 ((_MDOutRemovalMCID = MFVarGetID (MDVarRemovalMC, "kg/kg", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 110708 ((_MDOutRemovalTotalID = MFVarGetID (MDVarRemovalTotal, "kg/kg", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 030109 ((_MDOutAsDZID = MFVarGetID (MDVarAsDZ, "m2", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 110808 ((_MDOutAsHZID = MFVarGetID (MDVarAsHZ, "m2", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 110808 ((_MDOutAaID = MFVarGetID (MDVarAa, "m2", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 110808 ((_MDOutVelocityID = MFVarGetID (MDVarVelocity, "m/s", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 112108 ((_MDOutDINVfID = MFVarGetID (MDVarDINVf, "-", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 112210 ((_MDOutDINKtID = MFVarGetID (MDVarDINKt, "-", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 112210 ((_MDDeltaStoreWater_DINID = MFVarGetID (MDVarDeltaStoreWaterDIN, "kg/day", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 112008 ((_MDDeltaStoreWaterMixing_DINID = MFVarGetID (MDVarDeltaStoreWaterMixingDIN, "kg/day", MFOutput, MFState, MFBoundary)) == CMfailed) || // RJS 112008 ((_MDFlowPathRemoval_DINID = MFVarGetID (MDVarFlowPathRemovalDIN, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || // RJS 112008 ((_MDFlowPathRemovalMixing_DINID = MFVarGetID (MDVarFlowPathRemovalMixingDIN, "kg/day", MFOutput, MFFlux, MFBoundary)) == CMfailed) || // RJS 112008 (MFModelAddFunction (_MDNProcessing) == CMfailed)) return (CMfailed); MFDefLeaving ("N Processing"); return (_MDFlux_DINID); // RJS 091408 }