diff --git a/gridded/da/analysis/longterm_fluxes.py b/gridded/da/analysis/longterm_fluxes.py
new file mode 100755
index 0000000000000000000000000000000000000000..2314f826484ff5873bf9937b3ab919d38a190f02
--- /dev/null
+++ b/gridded/da/analysis/longterm_fluxes.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python
+# longterm_fluxes.py
+
+"""
+Author : peters 
+
+Revision History:
+File created on 20 Dec 2012.
+
+"""
+
+import os
+import sys
+import datetime
+from dateutil.relativedelta import relativedelta
+import subprocess
+
+def longterm_avg(rundir,avg):
+    """ Function to average a set of files in a folder from monthly to yearly means """
+
+    if avg not in ['transcom','olson','country','flux1x1']:
+        raise IOError,'Choice of averaging invalid'
+    if not os.path.exists(rundir):
+        raise IOError,'rundir requested (%s) does not exist, exiting...'%rundir
+
+    yeardir = os.path.join(rundir , 'data_%s_yearly'%avg )
+    files  = os.listdir(yeardir)
+    longtermdir = os.path.join(rundir,'data_%s_longterm'%avg)
+    if not os.path.exists(longtermdir):
+        print "Creating new output directory " + longtermdir
+        os.makedirs(longtermdir)
+        sd = datetime.datetime(1999,1,1)
+
+    files = [f for f in files if avg in f]
+
+    dates = []
+    for filename in files:
+        date=datetime.datetime.strptime(filename.split('.')[-2],'%Y')
+        dates.append( date )
+
+    avg_files = [os.path.join(yeardir,k) for k in files]
+   
+    if len(avg_files) > 0 : 
+        command = ['ncra','-O']+ avg_files + [os.path.join(longtermdir,'%s_fluxes.%04d-%04d.nc'%(avg,dates[0].year, dates[-1].year))]
+    
+        status = subprocess.check_call(command)
+
+if __name__ == "__main__":
+
+    
+    rundir = "/Storage/CO2/peters/ctdas-ei-gfed2-glb6x4-griddedNH/analysis"
+
+    try:
+        avg=sys.argv[1]
+    except:
+        avg='transcom'
+
+    longterm_avg(rundir,avg)
+