diff --git a/dartwrf/assim_synth_obs.py b/dartwrf/assim_synth_obs.py
index c89d07f948242238ee1c389631283c01905a4fa4..27ceb62c0601a208c3d6a449fb70f67c83c5454b 100755
--- a/dartwrf/assim_synth_obs.py
+++ b/dartwrf/assim_synth_obs.py
@@ -141,12 +141,15 @@ def filter(nproc=12):
     print("running filter")
     os.chdir(cluster.dart_rundir)
     try_remove(cluster.dart_rundir + "/obs_seq.final")
+
     t = time_module.time()
-    if nproc < 12:
-        shell(cluster.dart_modules+' mpirun -np 12 ./filter &> log.filter')
-    else:  # -genv I_MPI_PIN_PROCESSOR_LIST=0-"+str(int(nproc) - 1)
-        shell(cluster.dart_modules+" mpirun -np "+str(int(nproc))+" ./filter > log.filter")
+    if nproc > 1:
+        # -genv I_MPI_PIN_PROCESSOR_LIST=0-"+str(int(nproc) - 1)
+        shell(cluster.dart_modules+" mpirun -np "+str(int(nproc))+" ./filter > log.filter") 
+    else:
+        shell(cluster.dart_modules+" ./filter > log.filter")
     print("./filter took", int(time_module.time() - t), "seconds")
+    
     if not os.path.isfile(cluster.dart_rundir + "/obs_seq.final"):
         raise RuntimeError(
             "obs_seq.final does not exist in " + cluster.dart_rundir,
@@ -322,7 +325,8 @@ def qc_obs(time, oso):
 def evaluate(assim_time, 
              obs_seq_out=False,
              prior_is_filter_output=False,
-             output_format=pattern_obs_seq_final+"-evaluate"):
+             output_format=pattern_obs_seq_final+"-evaluate",
+             nproc=12):
     """Calculates either prior or posterior obs space values.
 
     Note: Depends on a prepared input_list.txt, which defines the ensemble (prior or posterior).
@@ -350,7 +354,7 @@ def evaluate(assim_time,
 
     if prior_is_filter_output:
         print('using filter_restart files from last assimilation as prior')
-        use_filter_output_as_prior(time)
+        use_filter_output_as_prior(assim_time)
     else:
         print('using files linked to `run_DART/<exp>/prior_ens*/wrfout_d01` as prior')
         use_linked_files_as_prior()
@@ -363,7 +367,7 @@ def evaluate(assim_time,
             raise RuntimeError(cluster.dart_rundir+'/obs_seq.out does not exist')
 
     dart_nml.write_namelist(just_prior_values=True)
-    filter(nproc=6)
+    filter(nproc=nproc)
 
     # archiving
     fout = cluster.archivedir + "/obs_seq_final/" + assim_time.strftime(output_format)