diff --git a/build/source/interface/file_access_actor/cppwrap_fileAccess.f90 b/build/source/interface/file_access_actor/cppwrap_fileAccess.f90
index 8b7225225085526ca4104d274885ca0906e89fc3..4bcd544ce556b1474010e84d2e5e9fd8b166373f 100644
--- a/build/source/interface/file_access_actor/cppwrap_fileAccess.f90
+++ b/build/source/interface/file_access_actor/cppwrap_fileAccess.f90
@@ -313,6 +313,7 @@ subroutine FileAccessActor_WriteOutput(&
   integer(i4b)                         :: iStruct
   integer(i4b)                         :: iStep
   integer(i4b)                         :: iFreq
+  integer(i4b), dimension(maxVarFreq)  :: outputTimestepUpdate
 
   call c_f_pointer(handle_ncid, ncid)
   ! ****************************************************************************
@@ -326,7 +327,7 @@ subroutine FileAccessActor_WriteOutput(&
 
     ! reset outputTimeStep
     ! get the number of HRUs in the run domain
-    nHRUrun = sum(gru_struc%hruCount)
+    ! nHRUrun = sum(gru_struc%hruCount)
     ! write time information
     call writeTime(ncid,outputTimeStep(indxGRU)%dat(:),iStep,time_meta, &
               outputStructure(1)%timeStruct(1)%gru(indxGRU)%hru(indxHRU)%var,err,cmessage)
@@ -335,31 +336,32 @@ subroutine FileAccessActor_WriteOutput(&
   do iStruct=1,size(structInfo)
     select case(trim(structInfo(iStruct)%structName))
       case('forc')
-        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),nHRUrun,maxLayers,indxGRU,nSteps,forc_meta, &
+        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),outputTimestepUpdate,maxLayers,indxGRU,nSteps,forc_meta, &
                       outputStructure(1)%forcStat(1),outputStructure(1)%forcStruct(1),'forc', &
                       forcChild_map,outputStructure(1)%indxStruct(1),err,cmessage)
       case('prog')
-        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),nHRUrun,maxLayers,indxGRU,nSteps,prog_meta, & 
+        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),outputTimestepUpdate,maxLayers,indxGRU,nSteps,prog_meta, & 
                       outputStructure(1)%progStat(1),outputStructure(1)%progStruct(1),'prog', &
                       progChild_map,outputStructure(1)%indxStruct(1),err,cmessage)
       case('diag')
-        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),nHRUrun,maxLayers,indxGRU,nSteps,diag_meta, &
+        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),outputTimestepUpdate,maxLayers,indxGRU,nSteps,diag_meta, &
                       outputStructure(1)%diagStat(1),outputStructure(1)%diagStruct(1),'diag', &
                       diagChild_map,outputStructure(1)%indxStruct(1),err,cmessage)
       case('flux')
-        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),nHRUrun,maxLayers,indxGRU,nSteps,flux_meta, &
+        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),outputTimestepUpdate,maxLayers,indxGRU,nSteps,flux_meta, &
                       outputStructure(1)%fluxStat(1),outputStructure(1)%fluxStruct(1),'flux', &
                       fluxChild_map,outputStructure(1)%indxStruct(1),err,cmessage)
       case('indx')
-        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),nHRUrun,maxLayers,indxGRU,nSteps,indx_meta, &
+        call writeData(ncid,outputTimeStep(indxGRU)%dat(:),outputTimestepUpdate,maxLayers,indxGRU,nSteps,indx_meta, &
                       outputStructure(1)%indxStat(1),outputStructure(1)%indxStruct(1),'indx', &
                       indxChild_map,outputStructure(1)%indxStruct(1),err,cmessage)
     end select
     if(err/=0)then; message=trim(message)//trim(cmessage)//'['//trim(structInfo(iStruct)%structName)//']'; return; endif
   end do  ! (looping through structures)
-  ! do iFreq = 1,maxvarFreq
-  !   if(outputStructure(1)%finalizeStats(1)%gru(indxGRU)%hru(1)%tim(iStep)%dat(iFreq)) outputTimeStep(indxGRU)%dat(iFreq) = outputTimeStep(indxGRU)%dat(iFreq) + 1
-  ! end do ! ifreq
+  
+  do iFreq = 1,maxvarFreq
+    outputTimeStep(indxGRU)%dat(iFreq) = outputTimeStep(indxGRU)%dat(iFreq) + outputTimeStepUpdate(iFreq) 
+  end do ! ifreq
 
 end subroutine
 
diff --git a/build/source/netcdf/writeOutput.f90 b/build/source/netcdf/writeOutput.f90
index 471c892f3781673e1482703ad9fc5aeb8a792b16..5733b0f78fdcf1bd8fc960c674710c34630ccb1d 100644
--- a/build/source/netcdf/writeOutput.f90
+++ b/build/source/netcdf/writeOutput.f90
@@ -87,128 +87,128 @@ contains
     ! public subroutine writeParm: write model parameters
     ! **********************************************************************************************************
 subroutine writeParm(ncid,ispatial,struct,meta,err,message)
-USE data_types,only:var_info                    ! metadata info
-USE var_lookup,only:iLookStat                   ! index in statistics vector
-USE var_lookup,only:iLookFreq                   ! index in vector of model output frequencies
-implicit none
+  USE data_types,only:var_info                    ! metadata info
+  USE var_lookup,only:iLookStat                   ! index in statistics vector
+  USE var_lookup,only:iLookFreq                   ! index in vector of model output frequencies
+  implicit none
 
-! declare input variables
-type(var_i)   ,intent(in)   :: ncid             ! file ids
-integer(i4b)  ,intent(in)   :: iSpatial         ! hydrologic response unit
-class(*)      ,intent(in)   :: struct           ! data structure
-type(var_info),intent(in)   :: meta(:)          ! metadata structure
-integer(i4b)  ,intent(out)  :: err              ! error code
-character(*)  ,intent(out)  :: message          ! error message
-! local variables
-integer(i4b)                :: iVar             ! loop through variables
+  ! declare input variables
+  type(var_i)   ,intent(in)   :: ncid             ! file ids
+  integer(i4b)  ,intent(in)   :: iSpatial         ! hydrologic response unit
+  class(*)      ,intent(in)   :: struct           ! data structure
+  type(var_info),intent(in)   :: meta(:)          ! metadata structure
+  integer(i4b)  ,intent(out)  :: err              ! error code
+  character(*)  ,intent(out)  :: message          ! error message
+  ! local variables
+  integer(i4b)                :: iVar             ! loop through variables
 
-! initialize error control
-err=0;message="writeParm/"
-! loop through local column model parameters
-do iVar = 1,size(meta)
-
-  ! check that the variable is desired
-  if (meta(iVar)%statIndex(iLookFREQ%timestep)==integerMissing) cycle
-
-  ! initialize message
-  message=trim(message)//trim(meta(iVar)%varName)//'/'
-
-	! HRU data
-  if (iSpatial/=integerMissing) then
-    select type (struct)
-      class is (var_i)
-        err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/iSpatial/),count=(/1/))
-      class is (var_i8)
-        err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/iSpatial/),count=(/1/))
-      class is (var_d)
-        err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/iSpatial/),count=(/1/))
-      class is (var_dlength)
-        err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)%dat/),start=(/iSpatial,1/),count=(/1,size(struct%var(iVar)%dat)/))
-      class default; err=20; message=trim(message)//'unknown variable type (with HRU)'; return
-    end select
-    call netcdf_err(err,message); if (err/=0) return
+  ! initialize error control
+  err=0;message="writeParm/"
+  ! loop through local column model parameters
+  do iVar = 1,size(meta)
 
-		! GRU data
-  else
-    select type (struct)
-      class is (var_d)
-        err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/1/),count=(/1/))
-      class is (var_i8)
-        err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/1/),count=(/1/))
-      class default; err=20; message=trim(message)//'unknown variable type (no HRU)'; return
-    end select
-  end if
-  call netcdf_err(err,message); if (err/=0) return
+    ! check that the variable is desired
+    if (meta(iVar)%statIndex(iLookFREQ%timestep)==integerMissing) cycle
+
+    ! initialize message
+    message=trim(message)//trim(meta(iVar)%varName)//'/'
+
+    ! HRU data
+    if (iSpatial/=integerMissing) then
+      select type (struct)
+        class is (var_i)
+          err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/iSpatial/),count=(/1/))
+        class is (var_i8)
+          err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/iSpatial/),count=(/1/))
+        class is (var_d)
+          err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/iSpatial/),count=(/1/))
+        class is (var_dlength)
+          print*, "Param size", size(struct%var(iVar)%dat)
+          err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)%dat/),start=(/iSpatial,1/),count=(/1,size(struct%var(iVar)%dat)/))
+        class default; err=20; message=trim(message)//'unknown variable type (with HRU)'; return
+      end select
+      call netcdf_err(err,message); if (err/=0) return
 
-	! re-initialize message
-  message="writeParm/"
-end do  ! looping through local column model parameters
+      ! GRU data
+    else
+      select type (struct)
+        class is (var_d)
+          err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/1/),count=(/1/))
+        class is (var_i8)
+          err = nf90_put_var(ncid%var(iLookFreq%timestep),meta(iVar)%ncVarID(iLookFreq%timestep),(/struct%var(iVar)/),start=(/1/),count=(/1/))
+        class default; err=20; message=trim(message)//'unknown variable type (no HRU)'; return
+      end select
+    end if
+    call netcdf_err(err,message); if (err/=0) return
+
+    ! re-initialize message
+    message="writeParm/"
+  end do  ! looping through local column model parameters
 
 end subroutine writeParm
 
     ! **************************************************************************************
     ! public subroutine writeData: write model time-dependent data
     ! **************************************************************************************
-subroutine writeData(ncid,outputTimestep,nHRUrun,maxLayers,iGRU,nSteps, & 
+subroutine writeData(ncid,outputTimestep,outputTimestepUpdate,maxLayers,iGRU,nSteps, & 
             meta,stat,dat,structName,map,indx,err,message)
-USE data_types,only:var_info                       ! metadata type
-USE var_lookup,only:maxVarStat                     ! index into stats structure
-USE var_lookup,only:iLookVarType                   ! index into type structure
-USE var_lookup,only:iLookIndex                     ! index into index structure
-USE var_lookup,only:iLookStat                      ! index into stat structure
-USE globalData,only:outFreq                        ! output file information
-USE globalData,only:outputStructure
-USE get_ixName_module,only:get_varTypeName         ! to access type strings for error messages
-USE get_ixName_module,only:get_statName            ! to access type strings for error messages
+  USE data_types,only:var_info                       ! metadata type
+  USE var_lookup,only:maxVarStat                     ! index into stats structure
+  USE var_lookup,only:iLookVarType                   ! index into type structure
+  USE var_lookup,only:iLookIndex                     ! index into index structure
+  USE var_lookup,only:iLookStat                      ! index into stat structure
+  USE globalData,only:outFreq                        ! output file information
+  USE globalData,only:outputStructure
+  USE get_ixName_module,only:get_varTypeName         ! to access type strings for error messages
+  USE get_ixName_module,only:get_statName            ! to access type strings for error messages
 
-implicit none
-! declare dummy variables
-type(var_i)   ,intent(in)        :: ncid              ! file ids
-integer(i4b)  ,intent(inout)     :: outputTimestep(:) ! output time step
-integer(i4b)  ,intent(in)        :: nHRUrun           ! number of HRUs in the run domain
-integer(i4b)  ,intent(in)        :: maxLayers         ! maximum number of layers
-integer(i4b)  ,intent(in)        :: iGRU
-integer(i4b)  ,intent(in)        :: nSteps             ! number of timeSteps
-type(var_info),intent(in)        :: meta(:)           ! meta data
-class(*)      ,intent(in)        :: stat              ! stats data
-class(*)      ,intent(in)        :: dat               ! timestep data
-character(*)  ,intent(in)        :: structName
-integer(i4b)  ,intent(in)        :: map(:)            ! map into stats child struct
-type(gru_hru_time_intVec) ,intent(in) :: indx         ! index data
-integer(i4b)  ,intent(out)       :: err               ! error code
-character(*)  ,intent(out)       :: message           ! error message
-! local variables
-integer(i4b)                     :: iHRU
-integer(i4b)                     :: iVar              ! variable index
-integer(i4b)                     :: iStat             ! statistics index
-integer(i4b)                     :: iFreq             ! frequency index
-integer(i4b)                     :: ncVarID           ! used only for time
-integer(i4b)                     :: nSnow             ! number of snow layers
-integer(i4b)                     :: nSoil             ! number of soil layers
-integer(i4b)                     :: nLayers           ! total number of layers
-! output arrays
-integer(i4b)                     :: datLength         ! length of each data vector
-integer(i4b)                     :: maxLength         ! maximum length of each data vector
-real(rkind)                      :: timeVec(nSteps)   ! timeVal to copy
-real(rkind)                      :: realVec(nSteps)   ! real vector for all HRUs in the run domain
-real(rkind)                      :: realArray(nSteps,maxLayers+1)  ! real array for all HRUs in the run domain
-integer(i4b)                     :: intArray(nSteps,maxLayers+1)   ! integer array for all HRUs in the run domain
-integer(i4b)                     :: dataType          ! type of data
-integer(i4b),parameter           :: ixInteger=1001    ! named variable for integer
-integer(i4b),parameter           :: ixReal=1002       ! named variable for real
-integer(i4b)                     :: stepCounter     ! counter to know how much data we have to write
-integer(i4b)                     :: iStep
-integer(i4b)                     :: outputTimeStepUpdateVal(maxVarFreq)
-! initialize error control
-err=0;message="writeData/"
-! loop through output frequencies
-do iFreq=1,maxvarFreq
-  ! skip frequencies that are not needed
-  if(.not.outFreq(iFreq)) cycle
+  implicit none
+  ! declare dummy variables
+  type(var_i)   ,intent(in)        :: ncid              ! file ids
+  integer(i4b)  ,intent(inout)     :: outputTimestep(:) ! output time step
+  integer(i4b)  ,intent(inout)        :: outputTimestepUpdate(:) ! number of HRUs in the run domain
+  integer(i4b)  ,intent(in)        :: maxLayers         ! maximum number of layers
+  integer(i4b)  ,intent(in)        :: iGRU
+  integer(i4b)  ,intent(in)        :: nSteps             ! number of timeSteps
+  type(var_info),intent(in)        :: meta(:)           ! meta data
+  class(*)      ,intent(in)        :: stat              ! stats data
+  class(*)      ,intent(in)        :: dat               ! timestep data
+  character(*)  ,intent(in)        :: structName
+  integer(i4b)  ,intent(in)        :: map(:)            ! map into stats child struct
+  type(gru_hru_time_intVec) ,intent(in) :: indx         ! index data
+  integer(i4b)  ,intent(out)       :: err               ! error code
+  character(*)  ,intent(out)       :: message           ! error message
+  ! local variables
+  integer(i4b)                     :: iHRU
+  integer(i4b)                     :: iVar              ! variable index
+  integer(i4b)                     :: iStat             ! statistics index
+  integer(i4b)                     :: iFreq             ! frequency index
+  integer(i4b)                     :: ncVarID           ! used only for time
+  integer(i4b)                     :: nSnow             ! number of snow layers
+  integer(i4b)                     :: nSoil             ! number of soil layers
+  integer(i4b)                     :: nLayers           ! total number of layers
+  ! output arrays
+  integer(i4b)                     :: datLength         ! length of each data vector
+  integer(i4b)                     :: maxLength         ! maximum length of each data vector
+  real(rkind)                      :: timeVec(nSteps)   ! timeVal to copy
+  real(rkind)                      :: realVec(nSteps)   ! real vector for all HRUs in the run domain
+  real(rkind)                      :: realArray(nSteps,maxLayers+1)  ! real array for all HRUs in the run domain
+  integer(i4b)                     :: intArray(nSteps,maxLayers+1)   ! integer array for all HRUs in the run domain
+  integer(i4b)                     :: dataType          ! type of data
+  integer(i4b),parameter           :: ixInteger=1001    ! named variable for integer
+  integer(i4b),parameter           :: ixReal=1002       ! named variable for real
+  integer(i4b)                     :: stepCounter     ! counter to know how much data we have to write
+  integer(i4b)                     :: iStep
+  ! initialize error control
+  err=0;message="writeData/"
+  ! loop through output frequencies
+  do iFreq=1,maxvarFreq
+    ! skip frequencies that are not needed
+    if(.not.outFreq(iFreq)) cycle
 
-  ! loop through model variables
-  do iVar = 1,size(meta)
-    stepCounter = 0
+    ! loop through model variables
+    do iVar = 1,size(meta)
+      stepCounter = 0
 
       if (meta(iVar)%varName=='time' .and. structName == 'forc')then
         ! get variable index
@@ -221,10 +221,13 @@ do iFreq=1,maxvarFreq
           timeVec(stepCounter) = outputStructure(1)%forcStruct(1)%gru(iGRU)%hru(1)%var(iVar)%tim(iStep)
         end do ! iStep
         ! Write the values
+        ! print*, "Writing Time, startVal", outputTimeStep(iFreq)
+        ! print*, "Writing Time, stepCounter", stepCounter
+        ! print*, "Writing Time, timeVec", timeVec(1:stepCounter)
         err = nf90_put_var(ncid%var(iFreq),ncVarID,timeVec(1:stepCounter),start=(/outputTimestep(iFreq)/),count=(/stepCounter/))
         call netcdf_err(err,message); if (err/=0)then; print*, "err"; return; endif
         ! save the value of the number of steps to update outputTimestep at the end of the function
-        outputTimeStepUpdateVal(iFreq) = stepCounter
+        outputTimeStepUpdate(iFreq) = stepCounter
         cycle
       end if  ! id time
 
@@ -243,8 +246,12 @@ do iFreq=1,maxvarFreq
                   stepCounter = stepCounter + 1
                   realVec(stepCounter) = stat%gru(iGRU)%hru(iHRU)%var(map(iVar))%tim(iStep)%dat(iFreq)
                 end do
+                ! print*, "MetaData ", meta(iVar)%varName
+                ! print*, "Writing Data, startVal", outputTimeStep(iFreq)
+                ! print*, "Writing Data, stepCounter", stepCounter
+                ! print*, "Writing Data, realVec", realVec(1:stepCounter)
                 err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),realVec(1:stepCounter),start=(/iGRU,outputTimestep(iFreq)/),count=(/1,stepCounter/))
-                if (outputTimeStepUpdateVal(iFreq) /= stepCounter ) then
+                if (outputTimeStepUpdate(iFreq) /= stepCounter ) then
                   print*, "ERROR Missmatch in Steps"
                   return
                 endif
@@ -312,14 +319,22 @@ do iFreq=1,maxvarFreq
             ! write the data vectors
             select case(dataType)
               case(ixReal)
+                ! print*, "MetaData ", meta(iVar)%varName
+                ! print*, "Writing Data, startVal", outputTimeStep(iFreq)
+                ! print*, "Writing Data, stepCounter", stepCounter
+                ! print*, "Writing Data, realArray", realArray(1:stepCounter,:)
                 err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),realArray(1:stepCounter,:),start=(/iGRU,1,outputTimestep(iFreq)/),count=(/1,maxLength,stepCounter/))
-                if (outputTimeStepUpdateVal(iFreq) /= stepCounter ) then
+                if (outputTimeStepUpdate(iFreq) /= stepCounter ) then
                   print*, "ERROR Missmatch in Steps"
                   return
                 endif
               case(ixInteger)
+                ! print*, "MetaData ", meta(iVar)%varName
+                ! print*, "Writing Data, startVal", outputTimeStep(iFreq)
+                ! print*, "Writing Data, stepCounter", stepCounter
+                ! print*, "Writing Data, realArray", realArray(1:stepCounter,:)
                 err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),intArray(1:stepCounter,:),start=(/iGRU,1,outputTimestep(iFreq)/),count=(/1,maxLength,stepCounter/))
-                if (outputTimeStepUpdateVal(iFreq) /= stepCounter ) then
+                if (outputTimeStepUpdate(iFreq) /= stepCounter ) then
                   print*, "ERROR Missmatch in Steps"
                   return
                 endif
@@ -334,7 +349,7 @@ do iFreq=1,maxvarFreq
       call netcdf_err(err,message); if (err/=0) return
 
     end do ! iVar
-    outputTimeStep(iFreq) = outputTimeStep(iFreq) + outputTimeStepUpdateVal(iFreq) 
+    ! outputTimeStep(iFreq) = outputTimeStep(iFreq) + outputTimeStepUpdateVal(iFreq) 
   end do ! iFreq
 
 end subroutine writeData