public void OnPrepare() { inputFile.SeekToDate(Today); object[] values = inputFile.GetNextLineOfData(); foreach (Paddock p in paddock.ChildPaddocks) { fieldProps = (ModelFramework.Component)p.LinkByName("FieldProps"); fieldProps.Get("isDry", out isDry); fieldProps.Get("isHot", out isHot); fieldProps.Get("isShaded", out isShaded); localMint = Convert.ToSingle(values[MinTIndex]); localMaxt = Convert.ToSingle(values[MaxTIndex]); localRadn = Convert.ToSingle(values[RadnIndex]); localRain = Convert.ToSingle(values[RainIndex]); if (isDry.Equals("yes")) { localRain *= 0.9f; } if (isHot.Equals("yes")) { localMint += 2; localMaxt += 2; //change tav/amp? } if (isShaded.Equals("yes")) { localMaxt -= 5; } localMet = (ModelFramework.Component)p.LinkByName("LocalClimate"); localMet.Set("mint", localMint); localMet.Set("maxt", localMaxt); localMet.Set("radn", localRadn); localMet.Set("rain", localRain); } }
private static void FillVariableNames(ExpressionEvaluator fn, ModelFramework.Component RelativeTo) { ArrayList varUnfilled = fn.Variables; ArrayList varFilled = new ArrayList(); Symbol symFilled; foreach (Symbol sym in varUnfilled) { symFilled.m_name = sym.m_name; symFilled.m_type = EBMath.Type.Variable; symFilled.m_valueString = ""; symFilled.m_value = 0; if (!RelativeTo.Get(sym.m_name.Trim(), out symFilled.m_value)) { throw new Exception("Cannot find variable: " + sym.m_name + " in function: " + RelativeTo.Name); } varFilled.Add(symFilled); } fn.Variables = varFilled; }