diff --git a/da/analysis/daily_fluxes.py b/da/analysis/daily_fluxes.py
index 809dc2767e3f76ca5265d46df2a5ede29566e03a..5c42dc83d13b1742dc6ccd6f1451c4138e7938d4 100755
--- a/da/analysis/daily_fluxes.py
+++ b/da/analysis/daily_fluxes.py
@@ -23,10 +23,10 @@ def daily_avg(rundir,avg):
     if not os.path.exists(rundir):
         raise IOError,'rundir requested (%s) does not exist, exiting...'%rundir
 
-    weekdir = os.path.join(rundir + 'data_%s_weekly'%avg)
+    weekdir = os.path.join(rundir , 'data_%s_weekly'%avg)
     files  = os.listdir(weekdir)
     
-    daydir = os.path.join(rundir + 'data_%s_daily'%avg)
+    daydir = os.path.join(rundir , 'data_%s_daily'%avg)
     if not os.path.exists(daydir):
         print "Creating new output directory " + daydir
         os.makedirs(daydir)
diff --git a/da/analysis/monthly_fluxes.py b/da/analysis/monthly_fluxes.py
index 547a7070f5879be52cb840c2e7d5e71f9176cc70..291413753faa85c1238fc57eb8a05171edfa2533 100755
--- a/da/analysis/monthly_fluxes.py
+++ b/da/analysis/monthly_fluxes.py
@@ -23,7 +23,7 @@ def monthly_avg(rundir,avg):
     if not os.path.exists(rundir):
         raise IOError,'rundir requested (%s) does not exist, exiting...'%rundir
 
-    daydir = rundir + 'data_%s_daily'%avg
+    daydir = os.path.join(rundir , 'data_%s_daily'%avg)
     files  = os.listdir(daydir)
     monthdir = os.path.join(rundir,'data_%s_monthly'%avg)
     if not os.path.exists(monthdir):
diff --git a/da/analysis/time_avg_fluxes.py b/da/analysis/time_avg_fluxes.py
new file mode 100755
index 0000000000000000000000000000000000000000..8767899cebc82d8574669e6d0f6434014aa86e12
--- /dev/null
+++ b/da/analysis/time_avg_fluxes.py
@@ -0,0 +1,70 @@
+#!/usr/bin/env python
+# time_avg_fluxes.py
+
+"""
+Author : peters 
+
+Revision History:
+File created on 20 Dec 2012.
+
+"""
+import sys
+sys.path.append('../../')
+import os
+import sys
+import shutil
+import datetime
+from da.analysis.daily_fluxes import daily_avg
+from da.analysis.monthly_fluxes import monthly_avg
+from da.analysis.yearly_fluxes import yearly_avg
+
+def time_avg(dacycle,avg='transcom'):
+    """ Function to create a set of averaged files in a folder, needed to make longer term means """
+    
+    if avg not in ['transcom','olson','country']:
+        raise IOError,'Choice of averaging invalid'
+
+    analysisdir = dacycle['dir.analysis']
+
+    if not os.path.exists(analysisdir):
+        raise IOError,'analysis dir requested (%s) does not exist, exiting...'%analysisdir
+
+    daily_avg(analysisdir,avg)
+
+    if new_month(dacycle):
+        monthly_avg(analysisdir,avg)
+
+    if new_year(dacycle):
+        yearly_avg(analysisdir,avg)
+
+def new_month(dacycle):
+    """ check whether we just entered a new month"""
+
+    this_month = dacycle['time.start'].month
+    prev_month = (dacycle['time.start']-dacycle['cyclelength']).month
+
+    return (this_month != prev_month)
+
+def new_year(dacycle):
+    """ check whether we just entered a new year"""
+
+    this_year = dacycle['time.start'].year
+    prev_year = (dacycle['time.start']-dacycle['cyclelength']).year
+
+    return (this_year != prev_year)
+
+if __name__ == "__main__":
+
+    from da.tools.initexit import CycleControl
+
+    sys.path.append('../../')
+
+    dacycle = CycleControl(args={'rc':'../../ctdas-ei-gfed2-glb6x4-griddedNH.rc'})
+    dacycle.setup()
+    dacycle.parse_times()
+
+    while dacycle['time.end'] < dacycle['time.finish']:
+
+        time_avg(dacycle,avg='transcom')
+        dacycle.advance_cycle_times()
+
diff --git a/da/analysis/yearly_fluxes.py b/da/analysis/yearly_fluxes.py
index 02b623cc15c80b24821d2b52e5bb36e2e5beaf6f..3f6c5762f852f04d4a5d3082879faa66afc4a767 100755
--- a/da/analysis/yearly_fluxes.py
+++ b/da/analysis/yearly_fluxes.py
@@ -23,7 +23,7 @@ def yearly_avg(rundir,avg):
     if not os.path.exists(rundir):
         raise IOError,'rundir requested (%s) does not exist, exiting...'%rundir
 
-    monthdir = rundir + 'data_%s_monthly'%avg
+    monthdir = os.path.join(rundir , 'data_%s_monthly'%avg )
     files  = os.listdir(monthdir)
     yeardir = os.path.join(rundir,'data_%s_yearly'%avg)
     if not os.path.exists(yeardir):