diff --git a/build/makefile b/build/makefile
index 7fa0ce356a33829eacb35acb156cfd7a4b1dbb94..a20a1c374c447b954135e75bc670be1fd8a9024d 100644
--- a/build/makefile
+++ b/build/makefile
@@ -14,10 +14,10 @@ ACTORS_LIBRARIES = -L/usr/lib -L/usr/local/lib -L/Summa-Actors/bin -lcaf_core -l
 
 
 # Production runs
-FLAGS_NOAH = -O3 -ffree-form -ffree-line-length-none -fmax-errors=0 -fPIC -Wfatal-errors
-FLAGS_COMM = -O3 -ffree-line-length-none -fmax-errors=0 -fPIC -Wfatal-errors
-FLAGS_SUMMA = -O3 -ffree-line-length-none -fmax-errors=0 -fPIC -Wfatal-errors
-FLAGS_ACTORS = -O3 -Wfatal-errors -std=c++17
+FLAGS_NOAH = -g -O3 -ffree-form -ffree-line-length-none -fmax-errors=0 -fPIC -Wfatal-errors
+FLAGS_COMM = -g -O3 -ffree-line-length-none -fmax-errors=0 -fPIC -Wfatal-errors
+FLAGS_SUMMA = -g -O3 -ffree-line-length-none -fmax-errors=0 -fPIC -Wfatal-errors
+FLAGS_ACTORS = -g -O3 -Wfatal-errors -std=c++17
 
 # # Debug runs
 # FLAGS_NOAH = -g -O0 -ffree-form -ffree-line-length-none -fmax-errors=0 -fbacktrace -Wno-unused -Wno-unused-dummy-argument -fPIC
diff --git a/build/source/netcdf/writeOutput.f90 b/build/source/netcdf/writeOutput.f90
index be435e2cd36f1bfca942ab1ce73a436fe20e6e92..aec4363e23d2e563e38b30a0b45faf6993e65d52 100644
--- a/build/source/netcdf/writeOutput.f90
+++ b/build/source/netcdf/writeOutput.f90
@@ -79,6 +79,8 @@ public::writeData
 public::writeBasin
 public::writeTime
 public::writeRestart
+private::writeScalar
+private::writeVector
 ! define dimension lengths
 integer(i4b),parameter      :: maxSpectral=2              ! maximum number of spectral bands
 contains
@@ -147,9 +149,9 @@ subroutine writeParm(ncid,ispatial,struct,meta,err,message)
 
 end subroutine writeParm
 
-    ! **************************************************************************************
-    ! public subroutine writeData: write model time-dependent data
-    ! **************************************************************************************
+! **************************************************************************************
+! public subroutine writeData: write model time-dependent data
+! **************************************************************************************
 subroutine writeData(ncid,outputTimestep,outputTimestepUpdate,maxLayers,nSteps, &
             minGRU, maxGRU, numGRU, & 
             meta,stat,dat,structName,map,indx,err,message)
@@ -187,21 +189,11 @@ subroutine writeData(ncid,outputTimestep,outputTimestepUpdate,maxLayers,nSteps,
   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(numGRU, 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, needed because we do not always write nSteps
-  integer(i4b)                     :: gruCounter        ! Used as an index into an array for holding scalar values
   integer(i4b)                     :: iStep
   integer(i4b)                     :: iGRU
   integer(i4b)                     :: verifiedGRUIndex    ! index of HRU verified to not have failed
@@ -252,127 +244,13 @@ subroutine writeData(ncid,outputTimestep,outputTimestepUpdate,maxLayers,nSteps,
       ! check that the variable is desired
       if (iStat==integerMissing.or.trim(meta(iVar)%varName)=='unknown') cycle
 
-          ! stats output: only scalar variable type
-          if(meta(iVar)%varType==iLookVarType%scalarv) then
-            select type(stat)
-              class is (gru_hru_time_doubleVec)
-                ! TODO: Why does this have to be an if-else?
-                if (minGRU == maxGRU)then ! check if we are only need to write for 1 GRU
-                  gruCounter = 1
-                  do iStep = 1, nSteps
-                    if(.not.outputStructure(1)%finalizeStats(1)%gru(verifiedGRUIndex)%hru(1)%tim(iStep)%dat(iFreq)) cycle
-                    stepCounter = stepCounter + 1
-                    realVec(gruCounter, stepCounter) = stat%gru(verifiedGRUIndex)%hru(1)%var(map(iVar))%tim(iStep)%dat(iFreq)
-                  end do ! iStep
-                else 
-                  do iGRU = minGRU, maxGRU
-                    stepCounter = 0
-                    gruCounter = gruCounter + 1
-                    do iStep = 1, nSteps
-                      if(.not.outputStructure(1)%finalizeStats(1)%gru(verifiedGRUIndex)%hru(1)%tim(iStep)%dat(iFreq)) cycle
-                      stepCounter = stepCounter + 1
-                      realVec(gruCounter, stepCounter) = stat%gru(iGRU)%hru(1)%var(map(iVar))%tim(iStep)%dat(iFreq)
-                    end do ! iStep
-                  end do ! iGRU  
-                endif
-                
-                err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),realVec(1:gruCounter, 1:stepCounter),start=(/minGRU,outputTimestep(iFreq)/),count=(/numGRU,stepCounter/))
-                if (outputTimeStepUpdate(iFreq) /= stepCounter ) then
-                  print*, "ERROR Missmatch in Steps - stat doubleVec"
-                  print*, "   outputTimeStepUpdate(iFreq) = ", outputTimeStepUpdate(iFreq)
-                  print*, "   stepCounter = ", stepCounter
-                  return
-                endif
-              class default; err=20; message=trim(message)//'stats must be scalarv and of type gru_hru_doubleVec'; return
-            end select  ! stat
-          
-          else ! non-scalar variables: regular data structures
-
-            ! initialize the data vectors
-            select type (dat)
-              class is (gru_hru_time_doubleVec); realArray(:,:) = realMissing;    dataType=ixReal
-              class is (gru_hru_time_intVec);     intArray(:,:) = integerMissing; dataType=ixInteger
-              class default; err=20; message=trim(message)//'data must not be scalarv and either of type gru_hru_doubleVec or gru_hru_intVec'; return
-            end select
-
-            ! Loop over GRUs
-            gruCounter = 1
-            do iGRU = minGRU, maxGRU
-              do iStep = 1, nSteps
-                ! get the model layers
-                nSoil   = indx%gru(iGRU)%hru(1)%var(iLookIndex%nSoil)%tim(iStep)%dat(1)
-                nSnow   = indx%gru(iGRU)%hru(1)%var(iLookIndex%nSnow)%tim(iStep)%dat(1)
-                nLayers = indx%gru(iGRU)%hru(1)%var(iLookIndex%nLayers)%tim(iStep)%dat(1)
-
-                ! get the length of each data vector
-                select case (meta(iVar)%varType)
-                    case(iLookVarType%wLength); datLength = maxSpectral
-                    case(iLookVarType%midToto); datLength = nLayers
-                    case(iLookVarType%midSnow); datLength = nSnow
-                    case(iLookVarType%midSoil); datLength = nSoil
-                    case(iLookVarType%ifcToto); datLength = nLayers+1
-                    case(iLookVarType%ifcSnow); datLength = nSnow+1
-                    case(iLookVarType%ifcSoil); datLength = nSoil+1
-                    case default; cycle
-                end select ! vartype
-
-                ! get the data vectors
-                select type (dat)
-                    class is (gru_hru_time_doubleVec)
-                      ! do iStep = 1, nSteps
-                        if(.not.outputStructure(1)%finalizeStats(1)%gru(verifiedGRUIndex)%hru(1)%tim(iStep)%dat(iFreq)) cycle
-                        stepCounter = stepCounter + 1
-                        realArray(stepCounter,1:datLength) = dat%gru(iGRU)%hru(1)%var(iVar)%tim(iStep)%dat(:)
-                      ! end do
-
-                    class is (gru_hru_time_intVec)
-                      ! do iStep = 1, nSteps
-                        if(.not.outputStructure(1)%finalizeStats(1)%gru(verifiedGRUIndex)%hru(1)%tim(iStep)%dat(iFreq)) cycle
-                        stepCounter = stepCounter + 1
-                        intArray(stepCounter,1:datLength) = dat%gru(iGRU)%hru(1)%var(iVar)%tim(iStep)%dat(:)
-                      ! end do
-                    class default; err=20; message=trim(message)//'data must not be scalarv and either of type gru_hru_doubleVec or gru_hru_intVec'; return
-                end select
-
-                ! get the maximum length of each data vector
-                select case (meta(iVar)%varType)
-                  case(iLookVarType%wLength); maxLength = maxSpectral
-                  case(iLookVarType%midToto); maxLength = maxLayers
-                  case(iLookVarType%midSnow); maxLength = maxLayers-nSoil
-                  case(iLookVarType%midSoil); maxLength = nSoil
-                  case(iLookVarType%ifcToto); maxLength = maxLayers+1
-                  case(iLookVarType%ifcSnow); maxLength = (maxLayers-nSoil)+1
-                  case(iLookVarType%ifcSoil); maxLength = nSoil+1
-                  case default; cycle
-                end select ! vartype
-
-                ! write the data vectors
-                select case(dataType)
-
-                  case(ixReal)
-                    err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),realArray(1:stepCounter,:),start=(/iGRU,1,outputTimestep(iFreq)/),count=(/1,maxLength,stepCounter/))
-                    if(err/=0)then; print*, "ERROR: with nf90_put_var in data vector (ixReal)"; return; endif
-
-                  case(ixInteger)
-                    err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),intArray(1:stepCounter,:),start=(/iGRU,1,outputTimestep(iFreq)/),count=(/1,maxLength,stepCounter/))
-                    if(err/=0)then; print*, "ERROR: with nf90_put_var in data vector (ixInteger)"; return; endif
-
-                  case default; err=20; message=trim(message)//'data must be of type integer or real'; return
-                end select ! data type
-
-              end do ! isteps
-
-              if (outputTimeStepUpdate(iFreq) /= stepCounter ) then
-                print*, "ERROR Missmatch in Steps: for non scalar case"
-                print*, "   outputTimeStepUpdate(iFreq) = ", outputTimeStepUpdate(iFreq)
-                print*, "   stepCounter = ", stepCounter
-                return
-              endif
-
-            end do ! iGRU
-          
-          end if ! not scalarv
-        ! end do ! HRU Loop
+        ! stats output: only scalar variable type
+        if(meta(iVar)%varType==iLookVarType%scalarv) then
+          call writeScalar(ncid, outputTimeStep, outputTimeStepUpdate, nSteps, minGRU, maxGRU, numGRU, iFreq, iVar, meta, stat, map, err, message)
+        else ! non-scalar variables: regular data structures
+          call writeVector(ncid, outputTimeStep, outputTimeStepUpdate, maxLayers, nSteps, minGRU, maxGRU, iFreq, iVar, meta, dat, &
+            indx, err, message)
+        end if ! not scalarv
 
       ! process error code
       if (err/=0) message=trim(message)//trim(meta(iVar)%varName)//'_'//trim(get_statName(iStat))
@@ -384,6 +262,186 @@ subroutine writeData(ncid,outputTimestep,outputTimestepUpdate,maxLayers,nSteps,
 
 end subroutine writeData
 
+subroutine writeScalar(ncid, outputTimestep, outputTimestepUpdate, nSteps, minGRU, maxGRU, &
+  numGRU, iFreq, iVar, meta, stat, map, err, message)
+  USE data_types,only:var_info                       ! metadata type
+
+  implicit none
+  ! declare dummy variables
+  type(var_i)   ,intent(in)         :: ncid                    ! fileid
+  integer(i4b)  ,intent(inout)      :: outputTimestep(:)       ! output time step
+  integer(i4b)  ,intent(inout)      :: outputTimestepUpdate(:) ! number of HRUs in the run domain
+  integer(i4b)  ,intent(in)         :: nSteps                  ! number of timeSteps
+  integer(i4b)  ,intent(in)         :: minGRU                  ! minGRU index to write
+  integer(i4b)  ,intent(in)         :: maxGRU                  ! maxGRU index to write - probably not needed
+  integer(i4b)  ,intent(in)         :: numGRU
+  integer(i4b)  ,intent(in)         :: iFreq                   ! output file index (year, month, day, timesteps)
+  integer(i4b)  ,intent(in)         :: iVar                    ! netcdf variable we are writing data for
+  type(var_info),intent(in)         :: meta(:)                 ! meta data
+  class(*)      ,intent(in)         :: stat                    ! stats data
+  integer(i4b)  ,intent(in)         :: map(:)                  ! map into stats child struct
+  integer(i4b)  ,intent(inout)      :: err
+  character(*)  ,intent(inout)      :: message
+
+  ! local variables
+  integer(i4b)                      :: gruCounter             ! counter for the realVecs
+  integer(i4b)                      :: iStep                  ! counter for looping over nSteps
+  integer(i4b)                      :: stepCounter            ! counter for the realVec
+  integer(i4b)                      :: iGRU
+  ! output array
+  real(rkind)                       :: realVec(numGRU, nSteps)! real vector for all HRUs in the run domain
+
+  err=0; message="writeOutput.f90-writeScalar/"
+
+  select type(stat)
+    class is (gru_hru_time_doubleVec)
+      gruCounter=0
+      do iGRU = minGRU, maxGRU
+        stepCounter = 0
+        gruCounter = gruCounter + 1
+        do iStep = 1, nSteps
+          if(.not.outputStructure(1)%finalizeStats(1)%gru(iGRU)%hru(1)%tim(iStep)%dat(iFreq)) cycle
+          stepCounter = stepCounter + 1
+          realVec(gruCounter, stepCounter) = stat%gru(iGRU)%hru(1)%var(map(iVar))%tim(iStep)%dat(iFreq)
+        end do ! iStep
+      end do ! iGRU  
+    
+      err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),realVec(1:gruCounter, 1:stepCounter),start=(/minGRU,outputTimestep(iFreq)/),count=(/numGRU,stepCounter/))
+      if (outputTimeStepUpdate(iFreq) /= stepCounter ) then
+        print*, "ERROR Missmatch in Steps - stat doubleVec"
+        print*, "   outputTimeStepUpdate(iFreq) = ", outputTimeStepUpdate(iFreq)
+        print*, "   stepCounter = ", stepCounter
+        return
+      endif
+    class default; err=20; message=trim(message)//'stats must be scalarv and of type gru_hru_doubleVec'; return
+  end select  ! stat
+
+end subroutine
+
+subroutine writeVector(ncid, outputTimestep, outputTimestepUpdate, maxLayers, nSteps, minGRU, maxGRU, &
+  iFreq, iVar, meta, dat, indx, err, message)
+  USE data_types,only:var_info                       ! metadata type
+  USE var_lookup,only:iLookIndex                     ! index into index structure
+  USE var_lookup,only:iLookVarType                   ! index into type structure
+
+  implicit none
+  type(var_i)   ,intent(in)             :: ncid                    ! fileid
+  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)             :: nSteps                  ! number of timeSteps
+  integer(i4b)  ,intent(in)             :: minGRU                  ! minGRU index to write
+  integer(i4b)  ,intent(in)             :: maxGRU                  ! maxGRU index to write - probably not needed
+  integer(i4b)  ,intent(in)             :: iFreq                   ! output file index (year, month, day, timesteps)
+  integer(i4b)  ,intent(in)             :: iVar                    ! netcdf variable we are writing data for
+  type(var_info),intent(in)             :: meta(:)                 ! meta data
+  class(*)      ,intent(in)             :: dat               ! timestep data
+  type(gru_hru_time_intVec) ,intent(in) :: indx         ! index data
+  integer(i4b)  ,intent(inout)          :: err
+  character(*)  ,intent(inout)          :: message
+
+  ! local variables
+  integer(i4b)                          :: gruCounter             ! counter for the realVecs
+  integer(i4b)                          :: iStep                  ! counter for looping over nSteps
+  integer(i4b)                          :: stepCounter            ! counter for the realVec
+  integer(i4b)                          :: iGRU
+  integer(i4b)                          :: nSoil
+  integer(i4b)                          :: nSnow
+  integer(i4b)                          :: nLayers
+  ! output array
+  integer(i4b)                          :: datLength         ! length of each data vector
+  integer(i4b)                          :: maxLength         ! maximum length of each data vector
+  integer(i4b)                          :: dataType          ! type of data
+  integer(i4b),parameter                :: ixInteger=1001    ! named variable for integer
+  integer(i4b),parameter                :: ixReal=1002       ! named variable for real
+  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
+
+
+  ! initialize the data vectors
+  select type (dat)
+    class is (gru_hru_time_doubleVec); realArray(:,:) = realMissing;    dataType=ixReal
+    class is (gru_hru_time_intVec);     intArray(:,:) = integerMissing; dataType=ixInteger
+    class default; err=20; message=trim(message)//'data must not be scalarv and either of type gru_hru_doubleVec or gru_hru_intVec'; return
+  end select
+
+  ! Loop over GRUs
+  gruCounter = 1
+  do iGRU = minGRU, maxGRU
+    do iStep = 1, nSteps
+      ! get the model layers
+      nSoil   = indx%gru(iGRU)%hru(1)%var(iLookIndex%nSoil)%tim(iStep)%dat(1)
+      nSnow   = indx%gru(iGRU)%hru(1)%var(iLookIndex%nSnow)%tim(iStep)%dat(1)
+      nLayers = indx%gru(iGRU)%hru(1)%var(iLookIndex%nLayers)%tim(iStep)%dat(1)
+
+      ! get the length of each data vector
+      select case (meta(iVar)%varType)
+          case(iLookVarType%wLength); datLength = maxSpectral
+          case(iLookVarType%midToto); datLength = nLayers
+          case(iLookVarType%midSnow); datLength = nSnow
+          case(iLookVarType%midSoil); datLength = nSoil
+          case(iLookVarType%ifcToto); datLength = nLayers+1
+          case(iLookVarType%ifcSnow); datLength = nSnow+1
+          case(iLookVarType%ifcSoil); datLength = nSoil+1
+          case default; cycle
+      end select ! vartype
+
+      ! get the data vectors
+      select type (dat)
+          class is (gru_hru_time_doubleVec)
+            ! do iStep = 1, nSteps
+              if(.not.outputStructure(1)%finalizeStats(1)%gru(iGRU)%hru(1)%tim(iStep)%dat(iFreq)) cycle
+              stepCounter = stepCounter + 1
+              realArray(stepCounter,1:datLength) = dat%gru(iGRU)%hru(1)%var(iVar)%tim(iStep)%dat(:)
+            ! end do
+
+          class is (gru_hru_time_intVec)
+            ! do iStep = 1, nSteps
+              if(.not.outputStructure(1)%finalizeStats(1)%gru(iGRU)%hru(1)%tim(iStep)%dat(iFreq)) cycle
+              stepCounter = stepCounter + 1
+              intArray(stepCounter,1:datLength) = dat%gru(iGRU)%hru(1)%var(iVar)%tim(iStep)%dat(:)
+            ! end do
+          class default; err=20; message=trim(message)//'data must not be scalarv and either of type gru_hru_doubleVec or gru_hru_intVec'; return
+      end select
+
+      ! get the maximum length of each data vector
+      select case (meta(iVar)%varType)
+        case(iLookVarType%wLength); maxLength = maxSpectral
+        case(iLookVarType%midToto); maxLength = maxLayers
+        case(iLookVarType%midSnow); maxLength = maxLayers-nSoil
+        case(iLookVarType%midSoil); maxLength = nSoil
+        case(iLookVarType%ifcToto); maxLength = maxLayers+1
+        case(iLookVarType%ifcSnow); maxLength = (maxLayers-nSoil)+1
+        case(iLookVarType%ifcSoil); maxLength = nSoil+1
+        case default; cycle
+      end select ! vartype
+
+      ! write the data vectors
+      select case(dataType)
+
+        case(ixReal)
+          err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),realArray(1:stepCounter,:),start=(/iGRU,1,outputTimestep(iFreq)/),count=(/1,maxLength,stepCounter/))
+          if(err/=0)then; print*, "ERROR: with nf90_put_var in data vector (ixReal)"; return; endif
+
+        case(ixInteger)
+          err = nf90_put_var(ncid%var(iFreq),meta(iVar)%ncVarID(iFreq),intArray(1:stepCounter,:),start=(/iGRU,1,outputTimestep(iFreq)/),count=(/1,maxLength,stepCounter/))
+          if(err/=0)then; print*, "ERROR: with nf90_put_var in data vector (ixInteger)"; return; endif
+
+        case default; err=20; message=trim(message)//'data must be of type integer or real'; return
+      end select ! data type
+
+    end do ! isteps
+
+    if (outputTimeStepUpdate(iFreq) /= stepCounter ) then
+      print*, "ERROR Missmatch in Steps: for non scalar case"
+      print*, "   outputTimeStepUpdate(iFreq) = ", outputTimeStepUpdate(iFreq)
+      print*, "   stepCounter = ", stepCounter
+      return
+    endif
+
+  end do ! iGRU
+end subroutine
+
 ! **************************************************************************************
 ! public subroutine writeBasin: write basin-average variables
 ! **************************************************************************************
diff --git a/utils/containers/docker/Dockerfile b/utils/containers/docker/Dockerfile
index e119731e6b90baf51a9a685bfd941dfd877e7cb4..5e8d61e0841e70583d6d6975c917288ec2f1b46d 100755
--- a/utils/containers/docker/Dockerfile
+++ b/utils/containers/docker/Dockerfile
@@ -3,30 +3,26 @@ FROM ubuntu:20.04
 WORKDIR /code
 
 # Get library dependencies
-RUN apt-get update && \
+RUN apt-get update -y && \
+    apt-get upgrade -y && \
     DEBIAN_FRONTEND="noninteractive" apt-get install -y software-properties-common \
     libnetcdf-dev \
     libnetcdff-dev \
     liblapack-dev \
-    libopenblas-dev
-
-# Get gfortran dependencies
-RUN add-apt-repository ppa:ubuntu-toolchain-r/test -y \
-    && apt-get update \
-    && apt-get install -y gfortran-7
-
-# get some other useful dependencies
-RUN apt update -y \
-    && apt upgrade -y \
-    && DEBIAN_FRONTEND="noninteractive" apt install -y \
-         cmake \
-         g++ \
-         git \
-         libssl-dev \
-         make \
-         gfortran \
-         gdb \
-    && apt-get autoclean
+    libopenblas-dev \
+    cmake \
+    g++ \
+    git \
+    libssl-dev \
+    make \
+    gfortran \
+    python3-pip \
+    gdb &&\
+    apt-get autoclean
+
+RUN pip3 install xarray
+RUN pip3 install netcdf4
+
 
 # Install the C++ Actor Framework From Git
 RUN git clone https://github.com/actor-framework/actor-framework.git
diff --git a/utils/containers/docker/launch_docker_container.sh b/utils/containers/docker/launch_docker_container.sh
index 9a25142c5936db44b56ae82f0228675aa48767aa..0e65916ae278dceb628345adfa279174087159e8 100755
--- a/utils/containers/docker/launch_docker_container.sh
+++ b/utils/containers/docker/launch_docker_container.sh
@@ -1,10 +1,8 @@
 #! /bin/bash
 
-export PROJECT_DIR=/home/local/kck540/SUMMA-Projects/Summa-Actors
+export PROJECT_DIR=/Users/kyleklenk/SUMMA-Projects/Summa-Actors
 export NA_TEST=/home/local/kck540/NA_Summa_Test
 export SUMMA=/home/local/kck540/SUMMA-Projects/summa-reference/summa
-echo ${PROJECT_DIR}
-docker run -d -it --name SUMMA-Actors --mount type=bind,source=${PROJECT_DIR},target=/Summa-Actors \
-    --mount type=bind,source=${NA_TEST},target=/NA_Test \
-    --mount type=bind,source=${SUMMA},target=/SUMMA \
-    summa-actors:latest
\ No newline at end of file
+docker run -d -it --name SUMMA-Actors --mount type=bind,source=${PROJECT_DIR},target=/Summa-Actors summa-actors:latest
+    # --mount type=bind,source=${NA_TEST},target=/NA_Test \
+    # --mount type=bind,source=${SUMMA},target=/SUMMA \
\ No newline at end of file
diff --git a/utils/laugh_tests/celia1990/output/runinfo.txt b/utils/laugh_tests/celia1990/output/runinfo.txt
index 0ae02e898c2bce604a09b3c81f65a96eb9b37a39..e444708c65bfe34a9b368f023ad7d3a3674131b9 100644
--- a/utils/laugh_tests/celia1990/output/runinfo.txt
+++ b/utils/laugh_tests/celia1990/output/runinfo.txt
@@ -1 +1 @@
- Run start time on system:  ccyy=2022 - mm=08 - dd=11 - hh=19 - mi=12 - ss=22.249
+ Run start time on system:  ccyy=2022 - mm=08 - dd=12 - hh=17 - mi=12 - ss=58.157
diff --git a/utils/laugh_tests/celia1990/output/summa-actors_celia1990GRU1-1_timestep.nc b/utils/laugh_tests/celia1990/output/summa-actors_celia1990GRU1-1_timestep.nc
index 2302dfc0eedc965b30aef30f733ae7b33eddfe5a..0fb39e4297953022c8a5873cd1dcfe2bd1b056c9 100644
Binary files a/utils/laugh_tests/celia1990/output/summa-actors_celia1990GRU1-1_timestep.nc and b/utils/laugh_tests/celia1990/output/summa-actors_celia1990GRU1-1_timestep.nc differ
diff --git a/utils/laugh_tests/celia1990/verify_celia.py b/utils/laugh_tests/celia1990/verify_celia.py
index 1d7a3369bf3d4e101453bcf4fdcc4d8ae9e45531..e319c807c1e805bc4d7e9a825d6dab629468a0de 100644
--- a/utils/laugh_tests/celia1990/verify_celia.py
+++ b/utils/laugh_tests/celia1990/verify_celia.py
@@ -46,8 +46,8 @@ output_variables = [time, nSnow, nSoil, nLayers, mLayerHeight, iLayerLiqFluxSoil
     scalarSWE, fieldCapacity]
 
 # find the output files
-verified_data_path = Path("/home/local/kck540/SUMMA-Projects/Summa-Actors/utils/laugh_tests/celia1990/verification_data/summa_celia1990_G1-1_timestep.nc")
-data_to_compare_path = Path("/home/local/kck540/SUMMA-Projects/Summa-Actors/utils/laugh_tests/celia1990/output/summa-actors_celia1990GRU1-1_timestep.nc")
+verified_data_path = Path("./verification_data/summa_celia1990_G1-1_timestep.nc")
+data_to_compare_path = Path("./output/summa-actors_celia1990GRU1-1_timestep.nc")
     
 try:
     verified_dataset = xr.open_dataset(verified_data_path)
@@ -101,6 +101,7 @@ for iHRU in range(0, numHRU):
                     print("variable -",var, "has different values at", elem)
                     print("     verified_hru = ", verified_data[elem])
                     print("     hru_to_compare = ", to_verify_data[elem])
+                    break
 
             # if (verified_hru[var].values != hru_to_compare[var].values).all():
             #     print("ERROR: Output data is not the same in",var)