Пример #1
0
    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;
    }