diff --git a/build/includes/global/auxilary.hpp b/build/includes/global/auxilary.hpp
index 148e5442160d527fe6f298e48aa765a1dcfa1b22..9c29e84c3dbb4c9144e871c45b926af0d0dc6c47 100644
--- a/build/includes/global/auxilary.hpp
+++ b/build/includes/global/auxilary.hpp
@@ -41,6 +41,9 @@ std::vector<double> get_var_d_by_indx(void* handle, int struct_indx);
 std::vector<long int> get_var_i8_by_indx(void* handle, int struct_indx);
 std::vector<int> get_flagVec_by_indx(void* handle, int struct_indx);
 
+void get_scalar_data(void* handle, double fracJulDay, 
+    double tmZoneOffsetFracDay, int year_length, int computeVegFlux);
+
 // Setters by index
 void set_var_dlength_by_indx(void* handle, 
     std::vector<std::vector<double>>& summa_struct, int struct_indx);
@@ -57,4 +60,7 @@ void set_var_d_by_indx(void* handle, std::vector<double>& summa_struct,
     int struct_indx);
 
 void set_flagVec_by_indx(void* handle, std::vector<int>& summa_struct, 
-    int struct_indx);
\ No newline at end of file
+    int struct_indx);
+
+void set_scalar_data(void* handle, double fracJulDay, 
+    double tmZoneOffsetFracDay, int year_length, int computeVegFlux);
\ No newline at end of file
diff --git a/build/includes/global/fortran_data_types.hpp b/build/includes/global/fortran_data_types.hpp
index e8e3204020f03d1b8751ece505445c50e10d57c4..2eb562e72afb3ef6ba3e3b053d3bc354504dac40 100644
--- a/build/includes/global/fortran_data_types.hpp
+++ b/build/includes/global/fortran_data_types.hpp
@@ -158,4 +158,10 @@ extern "C" {
     void get_data_flagVec_by_indx(void* handle, int* struct_indx, int* dat);
     void set_data_flagVec_by_indx(void* handle, int* struct_indx, int* num_var, 
         int* summa_struct);
+
+    // scalar types
+    void get_scalar_data_fortran(void* handle, double* fracJulDay, 
+        double* tmZoneOffsetFracDay, int* year_length, int* computeVegFlux);
+    void set_scalar_data_fortran(void* handle, double* fracJulDay,
+        double* tmZoneOffsetFracDay, int* year_length, int* computeVegFlux);
 }
\ No newline at end of file
diff --git a/build/includes/global/message_atoms.hpp b/build/includes/global/message_atoms.hpp
index 66eec98e9e4ecf235486680a7d066b282866e046..d4e32353a18581c7489ad9b2e12787a653d6b3ff 100644
--- a/build/includes/global/message_atoms.hpp
+++ b/build/includes/global/message_atoms.hpp
@@ -63,6 +63,12 @@ struct hru {
   std::vector<int> output_timestep;
   std::vector<int> reset_stats;
   std::vector<int> finalize_stats;
+
+  // scalar data
+  double frac_jul_day;
+  double tm_zone_offset_frac_day;
+  int year_length;
+  int compute_veg_flux;
 };
 
 template <class Inspector>
@@ -108,7 +114,12 @@ bool inspect(Inspector& inspector, hru& hru_data) {
       inspector.field("stat_counter", hru_data.stat_counter),
       inspector.field("output_timestep", hru_data.output_timestep),
       inspector.field("reset_stats", hru_data.reset_stats),
-      inspector.field("finalize_stats", hru_data.finalize_stats));
+      inspector.field("finalize_stats", hru_data.finalize_stats),
+      inspector.field("frac_jul_day", hru_data.frac_jul_day),
+      inspector.field("tm_zone_offset_frac_day", 
+          hru_data.tm_zone_offset_frac_day),
+      inspector.field("year_length", hru_data.year_length),
+      inspector.field("compute_veg_flux", hru_data.compute_veg_flux));
 }
 
 
diff --git a/build/source/global/auxiliary.cpp b/build/source/global/auxiliary.cpp
index 4669b481ef6359b0706f0f2a322e4e85d644768c..aad469de59e0650309fb9081b316bbc9009af22a 100644
--- a/build/source/global/auxiliary.cpp
+++ b/build/source/global/auxiliary.cpp
@@ -521,6 +521,18 @@ std::vector<std::vector<std::vector<double>>> get_lookup_struct(void *handle) {
   return lookup_struct;
 } 
 
+void get_scalar_data(void* handle, double fracJulDay, 
+    double tmZoneOffsetFracDay, int year_length, int computeVegFlux) {
+  get_scalar_data_fortran(handle, &fracJulDay, &tmZoneOffsetFracDay, 
+      &year_length, &computeVegFlux);
+}
+
+void set_scalar_data(void* handle, double fracJulDay, 
+    double tmZoneOffsetFracDay, int year_length, int computeVegFlux) {
+  set_scalar_data_fortran(handle, &fracJulDay, &tmZoneOffsetFracDay, 
+      &year_length, &computeVegFlux);
+}
+
 
 // HRU Data Serialization
 // struct_indx maps to the following:
diff --git a/build/source/global/cppwrap_datatypes.f90 b/build/source/global/cppwrap_datatypes.f90
index 75e84574348d5895f6999f5b895a0c148190c535..a97be87aeaac7db14d2572ba88eefd0018345714 100644
--- a/build/source/global/cppwrap_datatypes.f90
+++ b/build/source/global/cppwrap_datatypes.f90
@@ -2493,6 +2493,41 @@ subroutine set_data_flagVec_by_indx(handle, struct_indx, num_var, summa_struct)&
 end subroutine
 ! ****************************** flag_vec ****************************
 
+subroutine get_scalar_data_fortran(handle, fracJulDay, tmZoneOffsetFracDay, &
+    year_length, computeVegFlux) bind(C, name='get_scalar_data_fortran')
+  type(c_ptr), intent(in), value :: handle
+  real(c_double), intent(out) :: fracJulDay
+  real(c_double), intent(out) :: tmZoneOffsetFracDay
+  integer(c_int), intent(out) :: year_length
+  integer(c_int), intent(out) :: computeVegFlux
+  type(hru_type), pointer :: hru_data
+
+  call c_f_pointer(handle, hru_data)
+
+  fracJulDay = hru_data%fracJulDay
+  tmZoneOffsetFracDay = hru_data%tmZoneOffsetFracDay
+  year_length = hru_data%yearLength
+  computeVegFlux = hru_data%computeVegFlux
+
+end subroutine get_scalar_data_fortran
+
+subroutine set_scalar_data_fortran(handle, fracJulDay, tmZoneOffsetFracDay, &
+    year_length, computeVegFlux) bind(C, name='set_scalar_data_fortran')
+  type(c_ptr), intent(in), value :: handle
+  real(c_double), intent(in) :: fracJulDay
+  real(c_double), intent(in) :: tmZoneOffsetFracDay
+  integer(c_int), intent(in) :: year_length
+  integer(c_int), intent(in) :: computeVegFlux
+  type(hru_type), pointer :: hru_data
+
+  call c_f_pointer(handle, hru_data)
+
+  hru_data%fracJulDay = fracJulDay
+  hru_data%tmZoneOffsetFracDay = tmZoneOffsetFracDay
+  hru_data%yearLength = year_length
+  hru_data%computeVegFlux = computeVegFlux
+
+end subroutine set_scalar_data_fortran
 
 
 ! ****************************** hru type ****************************
diff --git a/build/source/hru_actor/hru_actor.cpp b/build/source/hru_actor/hru_actor.cpp
index 4b1e351b3d9d366e7e27263b17ef37dc7f29d81c..9b34d0e2b013c3b36f1ec4f63717f6ce62957fd4 100644
--- a/build/source/hru_actor/hru_actor.cpp
+++ b/build/source/hru_actor/hru_actor.cpp
@@ -232,6 +232,12 @@ behavior hru_actor(stateful_actor<hru_state>* self, int refGRU, int indxGRU,
       self->state.hru_data_serialized.finalize_stats = 
           get_flagVec_by_indx(self->state.hru_data, 2);
 
+      get_scalar_data(self->state.hru_data,
+          self->state.hru_data_serialized.frac_jul_day,
+          self->state.hru_data_serialized.tm_zone_offset_frac_day,
+          self->state.hru_data_serialized.year_length,
+          self->state.hru_data_serialized.compute_veg_flux);
+       
       aout(self) << "Done Serializing HRU Data\n";
 
       self->send(self->state.parent, serialize_hru_v, 
@@ -295,6 +301,11 @@ behavior hru_actor(stateful_actor<hru_state>* self, int refGRU, int indxGRU,
       set_flagVec_by_indx(self->state.hru_data, hru_data.reset_stats, 1);
       set_flagVec_by_indx(self->state.hru_data, hru_data.finalize_stats, 2);
 
+      // scalar data
+      set_scalar_data(self->state.hru_data, hru_data.frac_jul_day,
+          hru_data.tm_zone_offset_frac_day, hru_data.year_length,
+          hru_data.compute_veg_flux);
+
       self->send(self->state.parent, reinit_hru_v);
     },
 
diff --git a/build/source/hru_actor/hru_batch_actor.cpp b/build/source/hru_actor/hru_batch_actor.cpp
index dd6bf4c95e5a24386315223799f8714b09d5b4f8..6e186a4e6e528ddeb68c972743f97bab16f2cace 100644
--- a/build/source/hru_actor/hru_batch_actor.cpp
+++ b/build/source/hru_actor/hru_batch_actor.cpp
@@ -69,13 +69,6 @@ behavior hru_batch_actor(stateful_actor<hru_batch_state>* self,
     [=](reinit_hru) {
       aout(self) << "HRU_Batch_Actor: HRU Re-Initialized\n";
       self->send(self->state.parent, reinit_hru_v);
-    },
-
-    [=](exit_msg) {
-      for(auto& hru_actor : self->state.hru_actors) {
-        self->send_exit(hru_actor, exit_reason::user_shutdown);
-      }
-      self->quit();
     }
   };
 
diff --git a/build/source/job_actor/job_actor.cpp b/build/source/job_actor/job_actor.cpp
index 4b412904a7999e0644610a4fcd96e169f890511a..20458c044716aa52fae7befce84e3bbb2241f705 100644
--- a/build/source/job_actor/job_actor.cpp
+++ b/build/source/job_actor/job_actor.cpp
@@ -164,9 +164,11 @@ behavior job_actor(stateful_actor<job_state>* self,
 
         // Check if we are done the simulation
         if (self->state.timestep > self->state.num_steps) {
-          for (auto GRU : self->state.gru_container.gru_list)
-            GRU->setSuccess();
           aout(self) << "Job_Actor: Done Job\n";
+          for (auto GRU : self->state.gru_container.gru_list) {
+            self->send_exit(GRU->getGRUActor(), exit_reason::user_shutdown);
+            GRU->setSuccess();
+          }
           self->send(self, finalize_v);
         } else if (self->state.forcingStep > self->state.stepsInCurrentFFile) {
         // Check if we need another forcing file
diff --git a/build/source/summa_actor/summa_actor.cpp b/build/source/summa_actor/summa_actor.cpp
index fae8f31bf93adc6eb7fa9d0ddf25fb6cb0508550..365a30298cf9916fc9258e5bf4048cef66aae6e5 100644
--- a/build/source/summa_actor/summa_actor.cpp
+++ b/build/source/summa_actor/summa_actor.cpp
@@ -117,7 +117,8 @@ behavior summa_actor(stateful_actor<summa_actor_state>* self,
         
         self->send(self->state.parent, done_batch_v, total_dur_sec, 
                    read_dur_sec, write_dur_sec);
-        exit(0);
+        self->quit();
+        // exit(0);
       }
     },