/// <summary>
        /// 计算Ping流量
        /// </summary>
        /// <param name="param">参数</param>
        /// <param name="EastVelocity">船速东向分量</param>
        /// <param name="NorthVelocity">船速北向分量</param>
        /// <param name="HeadingOffset">航向角改正值,单位:弧度</param>
        /// <returns>计算结果</returns>
        public static EnsembleFlowInfo CalculateEnsembleFlow(CalculateEnsembleFlowParam param, double EastVelocity, double NorthVelocity, double HeadingOffset)
        {
            EnsembleFlow flow = new EnsembleFlow();

            flow.BottomMode     = param.RiverDischargeBottomMode;
            flow.TopMode        = param.RiverDischargeTopMode;
            flow.Draft          = param.RiverDischargeDraft;
            flow.Exponent       = param.RiverDischargeExponent;
            flow.MinAmplitude   = param.RiverDischargeConditions.RiverDischargeMinAmplitude;
            flow.MinCorrelation = param.RiverDischargeConditions.RiverDischargeMinCorrelation;
            flow.MinNG3         = param.RiverDischargeConditions.RiverDischargeMinNG3;
            flow.MinNG4         = param.RiverDischargeConditions.RiverDischargeMinNG4;
            flow.PulseLag       = param.RiverDischargeInstrument.RiverDischargePulseLag;
            flow.PulseLength    = param.RiverDischargeInstrument.RiverDischargePulseLength;
            flow.BeamAngle      = param.RiverDischargeInstrument.RiverDischargeBeamAngle;

            //LPJ 2013-5-21 将船速采用传递的参数---start
            EarthVelocity boat = new EarthVelocity();

            ////boat.EastVelocity = - param.RiverDischargeOrgData.B_Earth[0];
            ////boat.NorthVelocity = - param.RiverDischargeOrgData.B_Earth[1];
            //boat.EastVelocity = param.RiverDischargeOrgData.B_Earth[0];  //JZH 2012-04-08
            //boat.NorthVelocity = param.RiverDischargeOrgData.B_Earth[1]; //JZH 2012-04-08
            boat.EastVelocity  = EastVelocity;
            boat.NorthVelocity = NorthVelocity;

            //LPJ 2013-5-21  将船速采用传递的参数---end

            return(flow.CalculateEnsembleFlow(param.RiverDischargeOrgData, boat, param.RiverDischarge_dTime, HeadingOffset));
        }
        /// <summary>
        /// 计算表层和底部平均流速
        /// </summary>
        /// <param name="param">参数</param>
        /// <param name="dTopVx">表层平均流速X分量</param>
        /// <param name="dTopVy">表层平均流速Y分量</param>
        /// <param name="dBottomVx">底部平均流速X分量</param>
        /// <param name="dBottomVy">底部平均流速Y分量</param>
        public static void CalEnsembleAverageVelocity(CalculateEnsembleFlowParam param, ref double dTopVx, ref double dTopVy, ref double dBottomVx, ref double dBottomVy)
        {
            EnsembleFlow flow = new EnsembleFlow();

            flow.BottomMode     = param.RiverDischargeBottomMode;
            flow.TopMode        = param.RiverDischargeTopMode;
            flow.Draft          = param.RiverDischargeDraft;
            flow.Exponent       = param.RiverDischargeExponent;
            flow.MinAmplitude   = param.RiverDischargeConditions.RiverDischargeMinAmplitude;
            flow.MinCorrelation = param.RiverDischargeConditions.RiverDischargeMinCorrelation;
            flow.MinNG3         = param.RiverDischargeConditions.RiverDischargeMinNG3;
            flow.MinNG4         = param.RiverDischargeConditions.RiverDischargeMinNG4;
            flow.PulseLag       = param.RiverDischargeInstrument.RiverDischargePulseLag;
            flow.PulseLength    = param.RiverDischargeInstrument.RiverDischargePulseLength;
            flow.BeamAngle      = param.RiverDischargeInstrument.RiverDischargeBeamAngle;

            flow.CalculateAverageVelocity(param.RiverDischargeOrgData, ref dTopVx, ref dTopVy, ref dBottomVx, ref dBottomVy);
        }