(ATCScript "AnnualRunoff.spt" (Arg "DataFileObject") (Arg "PrecipDataSets") (Arg "Locations") (Arg "CurScenario") (LoadLibrary "ATCScriptGrid" "ATCScriptData" "ATCScriptMisc") (Unset Report) ('get rid off possible old grid) (Set CRLF (+ (Chr 13) (Chr 10))) (Set Space8 " ") (Set Space14 " ") (Set ReportString "") (If (= CurScenario "CurScenario") (Warn "CurScenario must be set before calling AnnualRunoff script." "Annual Runoff Report") (Else (Set LocCounter 0) (+= ReportString (+ "Comparison of Annual Simulated and Observed Runoff for '" CurScenario "' scenario." CRLF " Run Made " (Format (FileAttribute (+ InputDir CurScenario ".hbn") "date") "yyyy-mm-dd hh:mm") CRLF " " gHspfRunInfo CRLF " (Units:Inches)" CRLF CRLF ) ) (For CurLocation in Locations (Increment LocCounter) ('Get precip dataset) (Set DataSetPrec (ArrayItem PrecipDataSets LocCounter)) (Set DataSetPrec (DataTSer DataSetPrec SubSetByDate SDate EDate)) (Set DataSetPrec (DataTSer DataSetPrec Aggregate 6 1 "Sum")) (Set DataSetPrec (DataTSer DataSetPrec Values)) ('Get observed flow) (Set ObsDataSet (DataFile DataFileObject Data Location CurLocation Scenario "OBSERVED" Constituent "Flow")) (Set ObsDataSet (DataTSer ObsDataSet SubSetByDate SDate EDate)) (Set ObsDataSet (DataTSer ObsDataSet Aggregate 6 1 "Aver")) (Set ObsDataSet (DataTSer ObsDataSet Values)) ('Get simulated flow) (Set SimDataSet (DataFile DataFileObject Data Location CurLocation Scenario CurScenario Constituent "Flow")) (Set SimDataSet (DataTSer SimDataSet SubSetByDate SDate EDate)) (Set SimDataSet (DataTSer SimDataSet Aggregate 6 1 "Aver")) (Set SimDataSet (DataTSer SimDataSet Values)) (Set BasinArea (AreaFromEXS CurLocation (+ InputDir CurScenario ".exs"))) (+= ReportString (+ (ArrayItem Locations LocCounter) CRLF)) (+= ReportString (+ (Format "" Space8) (Format "" Space14) (Format "Simulated" Space14) (Format "Observed" Space14) (Format "Percent" Space14) CRLF ) ) (+= ReportString (+ (Format "Year" Space8) (Format "Precipitation" Space14) (Format "Flow" Space14) (Format "Flow" Space14) (Format "Error" Space14) CRLF ) ) (Set tmpSdate SDate) (Set YearCounter 0) (Set TotPrecip 0) (Set TotObs 0) (Set TotSim 0) (While (< tmpSdate EDate) (Increment YearCounter) (Set Precip (ArrayItem DataSetPrec YearCounter)) (Set ObsVal (ArrayItem ObsDataSet YearCounter)) (Set SimVal (ArrayItem SimDataSet YearCounter)) (Set ObsVal (/ (* ObsVal 8687.6) BasinArea)) (Set SimVal (/ (* SimVal 8687.6) BasinArea)) (If (> ObsVal 0) (Set PerDif (/ (- SimVal ObsVal) ObsVal)) (Else (Set PerDif 0)) ) (+= ReportString (+ (Format (Format tmpSdate "yyyy") "########") (Format Precip "##########0.00") (Format SimVal "###########0.0") (Format ObsVal "###########0.0") (Format PerDif "##########0.0%") CRLF ) ) (+= TotPrecip Precip) (+= TotObs ObsVal) (+= TotSim SimVal) (Set tmpSdate (JDateAdd tmpSdate "yr" 1 1)) ) ('Totals Line) (If (> TotObs 0) (Set PerDif (/ (- TotSim TotObs) TotObs)) (Else (Set PerDif 0)) ) (+= ReportString (+ (Format "Total" Space8) (Format TotPrecip "##########0.00") (Format TotSim "###########0.0") (Format TotObs "###########0.0") (Format PerDif "##########0.0%") CRLF ) ) ('Averages Line) (+= ReportString (+ (Format "Average" Space8) (Format (/ TotPrecip YearCounter) "##########0.00") (Format (/ TotSim YearCounter) "###########0.0") (Format (/ TotObs YearCounter) "###########0.0") (Format PerDif "##########0.0%") CRLF ) ) (+= ReportString CRLF) ) ) ) (Return ReportString) (Unset ReportString) (Unset ObsDataSet) (Unset SimDataSet) (Unset LocCounter) (Unset YearCounter) (Unset Precip) (Unset ObsVal) (Unset SimVal) (Unset PerDif) (Unset tmpSdate) (Unset TotPrecip) (Unset TotObs) (Unset TotSim) )