subroutine output_year
! Take annual averages and write to csv/bin, if interval is annual.
integer :: sti(3, 3), stb(3, 3)
integer i, nd
! Take average of annual values as needed
nd = output_ndays_per_year
do i = 1, output_nvars
! 0/1 (space, time) for current variable
stb = output_is_requested(i, :, :)
! indeces in aggregation arrays of current variable
sti = sum(output_is_requested(:i, :, :), dim=1)
if (output_var_state(i)) then
if (stb(1, 3) == 1) output_agg_hydrotope_annual(sti(1, 3), :, :) = &
output_agg_hydrotope_annual(sti(1, 3), :, :) / nd
if (stb(2, 3) == 1) output_agg_subbasin_annual(sti(2, 3), :, :) = &
output_agg_subbasin_annual(sti(2, 3), :, :) / nd
if (stb(3, 3) == 1) output_agg_catchment_annual(sti(3, 3), :, :) = &
output_agg_catchment_annual(sti(3, 3), :, :) / nd
end if
end do
! Write out before reset counters
if (output_write_interval == "Y") then
call output_write_daily
call output_write_monthly
output_store_day_counter = 1
output_store_month_counter = 1
end if
call output_write_annual
output_ndays_per_year = 0
end subroutine output_year