Package hec.rss.model

Class SsarrRouting

All Implemented Interfaces:
AsciiSerializable, FieldAccessor, TSLocation, AltInputReportInfc, RssModelVariableConstants, RssReturnStatusConstants, RssTSLocation, Serializable, Cloneable, Comparable, Observer, rma.lang.Modifiable

public class SsarrRouting extends Routing
See Also:
  • Constructor Details

    • SsarrRouting

      public SsarrRouting()
    • SsarrRouting

      public SsarrRouting(Element elem)
  • Method Details

    • setupForSerialization

      public void setupForSerialization()
      Called just before ascii serialization. Prepares the paired data values by setting there dss record path names
      Overrides:
      setupForSerialization in class Function
    • clone

      public Object clone()
      Description copied from class: Function
      clone method
      Overrides:
      clone in class Function
    • saveFunctionState

      public void saveFunctionState(int stateid)
      save the current state of the element and its function with the given identifier - saves subreach flows
      Overrides:
      saveFunctionState in class Function
      Parameters:
      stateid - identifier for the state
    • saveHotstartState

      public void saveHotstartState(HotstartState parentHotstartState, int stateId)
      Overrides:
      saveHotstartState in class Function
    • restoreHotstartState

      public boolean restoreHotstartState(HotstartState parentState)
      Overrides:
      restoreHotstartState in class Function
    • restoreFunctionState

      public void restoreFunctionState(int stateid)
      restore the state of the element and its function matching the given identifier - restores subreach flows
      Overrides:
      restoreFunctionState in class Function
      Parameters:
      stateid - identifier for the state
    • computeRouting

      public int computeRouting(RunTimeStep runtime)
      Overrides:
      computeRouting in class Routing
    • computeForecastStep

      public int computeForecastStep(RunTimeStep rts)
      compute one routing step during forecast
      Overrides:
      computeForecastStep in class Function
    • computeRoutingStep

      protected double computeRoutingStep(double deltaT, double q0, double q1)
      compute reach outflow for current period: out1 = out0 + dt * ( InMean - out0 ) / ( TS + dt/2. ) where InMean = ( in0 + in1 )/2 TS = time of storage
      Parameters:
      deltaT - time step in hours
      q0 - reach inflow, begin of period ( previous step )
      q1 - reach inflow, end of period ( current step )
    • initialize

      public boolean initialize()
      Description copied from class: Routing
      initialize prior to a compute
      Overrides:
      initialize in class Routing
    • setOutflowTimeOfStorageTable

      public void setOutflowTimeOfStorageTable(PairedValues pv)
    • setNCoefficient

      public void setNCoefficient(double ncoef)
      Parameters:
      ncoef - - "n" coefficient in TS = KTS/Q**n
    • getNCoefficient

      public double getNCoefficient()
      Returns:
      - "n" coefficient in TS = KTS/Q**n
    • setKTS

      public void setKTS(double kts)
      Parameters:
      kts - - "KTS" coefficient in TS = KTS/Q**n
    • getKTS

      public double getKTS()
      Returns:
      - "KTS" coefficient in TS = KTS/Q**n
    • setUseTable

      public void setUseTable(boolean tf)
    • useTable

      public boolean useTable()
    • setNumberReaches

      public void setNumberReaches(int numberReaches)
      Parameters:
      numberReaches - - number of subreaches or "phases"
    • getNumberReaches

      public int getNumberReaches()
      Returns:
      - number of subreaches or "phases"
    • getOutflowTimeOfStorageTable

      public PairedValues getOutflowTimeOfStorageTable()
      Returns:
      - outflow - time of storage table
    • setIsSI

      public void setIsSI(boolean isSI)
    • convertToWatershedUnits

      public void convertToWatershedUnits()
    • readData

      public boolean readData(BufferedReader input)
      Overrides:
      readData in class Function
    • writeData

      public boolean writeData(BufferedWriter out)
      Overrides:
      writeData in class Function
    • getFieldObject

      public Object getFieldObject(Field fld)
      Description copied from interface: FieldAccessor
      This method allows access to java.lang.reflect.Field objects within the implementing class.
      Specified by:
      getFieldObject in interface FieldAccessor
      Overrides:
      getFieldObject in class Routing
      Parameters:
      fld - The field to get.
      Returns:
      The data object that is stored in the given field
    • setFieldObject

      public boolean setFieldObject(Field fld, Object fobj)
      Description copied from interface: FieldAccessor
      This allows access to fields withing the implementing object to set there data.
      Specified by:
      setFieldObject in interface FieldAccessor
      Overrides:
      setFieldObject in class Routing
      Parameters:
      fld - The java field object representing the member field to be set
      fobj - The data to set in that field
      Returns:
      returns true if successful
    • outputReport

      public void outputReport(AlternativeInputReport report, org.jdom.Element elem)
      Description copied from interface: AltInputReportInfc
      Alternative Input Report Interface for data.
      Specified by:
      outputReport in interface AltInputReportInfc
      Overrides:
      outputReport in class Routing
    • initializeStandalone

      public boolean initializeStandalone()
      Description copied from class: Routing
      Initialize routing object for standalone compute in offline WQ simulation Default method - implemented in individual subclasses
      Overrides:
      initializeStandalone in class Routing
      Returns:
      true if initialization successful, false o.w.
    • computeRoutingStepStandalone

      public double computeRoutingStepStandalone(int rtsMinutes, double q0, double q1, double reachOutflow, double[] initSubOutflow, double[] finSubOutflow)
      Description copied from class: Routing
      Method to compute a time step of routing through a reach for an offline WQ simulation Default implementation - returns array of constant flows Actual routing methods implemented in individual subclasses
      Overrides:
      computeRoutingStepStandalone in class Routing
      Parameters:
      q0 - initial flow into upstream subreach
      q1 - flow at end of time step into upstream subreach
      reachOutflow - flow at end of the reach - used for coef routing
      initSubOutflow - array of subreach flows at start of time step
      finSubOutflow - array of subreach flows at end of time step
      Returns:
      flow at the end of the reach at end of time step
    • getSubreachFlowArray

      public double[] getSubreachFlowArray(double flowIn, double flowOut, int iStep)
      Overrides:
      getSubreachFlowArray in class Routing
    • getNumberSubreaches

      public int getNumberSubreaches()
      Description copied from class: Routing
      Get the number of subreaches in the routing reach Default method returns 1 - method implemented in individual subclasses
      Overrides:
      getNumberSubreaches in class Routing
      Returns:
      number of subreaches in reach with routing