diff --git a/flexpart_code/makefile.ifort b/flexpart_code/makefile.ctbto.ifort
similarity index 83%
rename from flexpart_code/makefile.ifort
rename to flexpart_code/makefile.ctbto.ifort
index 4f72fe4585f3614974f1678008622e60839accad..cb169b3262db594381d957916c1c7b3566a834e8 100644
--- a/flexpart_code/makefile.ifort
+++ b/flexpart_code/makefile.ctbto.ifort
@@ -1,11 +1,24 @@
 SHELL = /bin/bash
-MAIN = FLEXPART_IFORT
+FLEXPART_EXECUTABLE = flexpart_ifort   
+GRIB2FLEXPART_EXECUTABLE = grib2flexpart_ifort
+
+#############################################
+DEFS = -DCTBTO
+#############################################
+
+# Set up for devlan ifort
+INTEL_ROOT = /cots/intel/composer_xe_2013.2.146
+GRIB_API_ROOT = /dvl/atm/klinkl/tmp/ifort_grib_api/grib_api-1.12.3
+
+FC       = $(INTEL_ROOT)/bin/ifort
+
+INCPATH = $(GRIB_API_ROOT)/fortran
+LIBPATH1 = $(GRIB_API_ROOT)/fortran/.libs
+LIBPATH2 = $(GRIB_API_ROOT)/src/.libs
+
+
+FFLAGS   =   -O2 -mcmodel=medium -convert little_endian -I$(INCPATH) 
 
-FC       = ifort
-INCPATH  = /usr/local/grib-api/include
-LIBPATH1 = /usr/local/grib-api/lib
-LIBPATH2 = /usr/lib/x86_64-linux-gnu
-FFLAGS   = -g -O2 -mcmodel=medium -shared-intel -convert little_endian -I$(INCPATH)
 LDFLAGS  = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) -lgrib_api_f90 -lgrib_api -lm -ljasper
 
 
@@ -16,11 +29,11 @@ interpol_mod.o          cmapf_mod.o \
 unc_mod.o               oh_mod.o \
 xmass_mod.o             flux_mod.o \
 point_mod.o             outg_mod.o \
-fpmetbinary_mod.o
+fpmetbinary_mod.o	class_vtable_mod.o
 
 
 OBJECTS = \
-grib2check.o 		fpgricheck.o \
+grib2check.o 		fpgridcheck.o \
 writeheader.o           assignland.o\
 calcpar.o               part0.o \
 calcpar_gfs.o 		detectformat.o \
@@ -81,7 +94,6 @@ ohreaction.o            getvdep_nests.o \
 initial_cond_calc.o     initial_cond_output.o \
 dynamic_viscosity.o     get_settling.o
 
-
 all: $(FLEXPART_EXECUTABLE) $(GRIB2FLEXPART_EXECUTABLE)
 
 flexpart: $(FLEXPART_EXECUTABLE)
@@ -104,7 +116,8 @@ GRIB2FLEXPART.o: $(MODOBJS)
 	$(FC) -c $(FFLAGS) $<
 
 %.o: %.F90
-	$(FC) -c $(FFLAGS) $<
+	$(FC) -c $(FFLAGS) $(DEFS) $<
+
 
 clean:
 	rm -f *.o *.mod
diff --git a/flexpart_code/makefile.gfortran b/flexpart_code/makefile.general.gfortran
similarity index 91%
rename from flexpart_code/makefile.gfortran
rename to flexpart_code/makefile.general.gfortran
index a2b4918a373f6fee2f8fc7d2af647713714873e6..02922fbc00a1fe7219167c36fcb7b20cd49b782d 100644
--- a/flexpart_code/makefile.gfortran
+++ b/flexpart_code/makefile.general.gfortran
@@ -5,14 +5,25 @@ GRIB2FLEXPART_EXECUTABLE = GRIB2FLEXPART_GFORTRAN
 #############################################
 #### Uncomment this to activate performance timing
 #DEFS = -DPERFTIMER -DCTBTO
-DEFS = -DPERFTIMER
+#DEFS = -DPERFTIMER
+# DEFS = -DCTBTO
+DEFS = 
 #############################################
 
 FC       = gfortran
-INCPATH  = /opt/grib-api/include
-LIBPATH1 = /opt/grib-api/lib
+
+# devlan
+INCPATH  = /dvl/atm/software/local/include
+LIBPATH1 = /dvl/atm/software/usr/lib
 LIBPATH2 = /usr/lib/x86_64-linux-gnu
-FFLAGS   =   -O2 -m64 -mcmodel=medium -fcheck=all -fconvert=little-endian -frecord-marker=4 -I$(INCPATH) 
+
+
+# alaskawx
+#INCPATH  = /opt/grib-api/include
+#LIBPATH1 = /opt/grib-api/lib
+#LIBPATH2 = /usr/lib/x86_64-linux-gnu
+
+FFLAGS   =   -O2 -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -I$(INCPATH) 
 
 LDFLAGS  = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) -lgrib_api_f90 -lgrib_api -lm -ljasper
 
diff --git a/flexpart_code/makefile.gfortran.fpmetbinary b/flexpart_code/makefile.general.ifort
similarity index 68%
rename from flexpart_code/makefile.gfortran.fpmetbinary
rename to flexpart_code/makefile.general.ifort
index 601a0ee08970b562d9e7438d0e741b40448c5b32..5629bdd310ddb05d9bd33d6a7d29198cf644fe61 100644
--- a/flexpart_code/makefile.gfortran.fpmetbinary
+++ b/flexpart_code/makefile.general.ifort
@@ -1,11 +1,25 @@
 SHELL = /bin/bash
-MAIN = FLEXPART_GFORTRAN
+FLEXPART_EXECUTABLE = flexpart_ifort   
+GRIB2FLEXPART_EXECUTABLE = grib2flexpart_ifort
+
+#############################################
+#DEFS = -DCTBTO
+DEFS = -DCTBTO
+#############################################
+
+# Set up for devlan ifort
+INTEL_ROOT = /cots/intel/composer_xe_2013.2.146
+GRIB_API_ROOT = /dvl/atm/klinkl/tmp/ifort_grib_api/grib_api-1.12.3
+
+FC       = $(INTEL_ROOT)/bin/ifort
+
+INCPATH = $(GRIB_API_ROOT)/fortran
+LIBPATH1 = $(GRIB_API_ROOT)/fortran/.libs
+LIBPATH2 = $(GRIB_API_ROOT)/src/.libs
+
+
+FFLAGS   =   -O2 -mcmodel=medium -convert little_endian -I$(INCPATH) 
 
-FC       = gfortran
-INCPATH  = /opt/grib-api/include
-LIBPATH1 = /opt/grib-api/lib
-LIBPATH2 = /usr/lib/x86_64-linux-gnu
-FFLAGS   =   -O2 -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -I$(INCPATH)
 LDFLAGS  = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) -lgrib_api_f90 -lgrib_api -lm -ljasper
 
 
@@ -16,22 +30,23 @@ interpol_mod.o          cmapf_mod.o \
 unc_mod.o               oh_mod.o \
 xmass_mod.o             flux_mod.o \
 point_mod.o             outg_mod.o \
-fpmetbinary_mod.o
+fpmetbinary_mod.o	class_vtable_mod.o
 
 
 OBJECTS = \
+grib2check.o 		fpgridcheck.o \
 writeheader.o           assignland.o\
 calcpar.o               part0.o \
 calcpar_gfs.o 		detectformat.o \
 caldate.o               partdep.o \
 coordtrafo.o            psih.o \
-raerod.o \
+raerod.o 		convertfields.o \
 drydepokernel.o         random.o \
 erf.o                   readavailable.o \
 ew.o                    readcommand.o \
 advance.o               readdepo.o \
 releaseparticles.o      psim.o     \
-FLEXPART.o              readlanduse.o \
+readlanduse.o           getfpfields.o \
 getfields.o             init_domainfill.o\
 interpol_wind.o         readoutgrid.o \
 interpol_all.o          readpaths.o \
@@ -58,7 +73,6 @@ readwind_nests.o        calcpar_nests.o \
 verttransform_nests.o   interpol_all_nests.o \
 interpol_wind_nests.o   interpol_misslev_nests.o \
 interpol_vdep_nests.o   interpol_rain_nests.o \
-getvdep_nests.o \
 readageclasses.o        readpartpositions.o \
 calcfluxes.o            fluxoutput.o \
 qvsat.o                 skplin.o \
@@ -81,16 +95,32 @@ ohreaction.o            getvdep_nests.o \
 initial_cond_calc.o     initial_cond_output.o \
 dynamic_viscosity.o     get_settling.o
 
+all: $(FLEXPART_EXECUTABLE) $(GRIB2FLEXPART_EXECUTABLE)
+
+flexpart: $(FLEXPART_EXECUTABLE)
 
-$(MAIN): $(MODOBJS) $(OBJECTS)
-	$(FC) *.o -o $(MAIN) $(LDFLAGS)
+grib2flexpart: $(GRIB2FLEXPART_EXECUTABLE)
+
+$(FLEXPART_EXECUTABLE): $(MODOBJS) $(OBJECTS) FLEXPART.o
+	$(FC) FLEXPART.o $(OBJECTS) $(MODOBJS) -o $(FLEXPART_EXECUTABLE) $(LDFLAGS)
+
+$(GRIB2FLEXPART_EXECUTABLE): $(MODOBJS) $(OBJECTS) GRIB2FLEXPART.o
+	$(FC) GRIB2FLEXPART.o $(OBJECTS) $(MODOBJS) -o $(GRIB2FLEXPART_EXECUTABLE) $(LDFLAGS)
 
 $(OBJECTS): $(MODOBJS)
 
-%.o: %.f90
+FLEXPART.o: $(MODOBJS)
+
+GRIB2FLEXPART.o: $(MODOBJS)
+
+%.o: %.f90 
 	$(FC) -c $(FFLAGS) $<
 
+%.o: %.F90
+	$(FC) -c $(FFLAGS) $(DEFS) $<
+
+
 clean:
-	rm *.o *.mod
+	rm -f *.o *.mod
 
 
diff --git a/flexpart_code/makefile.gfortran.fptest b/flexpart_code/makefile.gfortran.fptest
deleted file mode 100644
index e64029402d7aefb83d88dc5823aa5db867c07e49..0000000000000000000000000000000000000000
--- a/flexpart_code/makefile.gfortran.fptest
+++ /dev/null
@@ -1,154 +0,0 @@
-###############################################################
-#
-# DJM 2015-09-17 
-# This is an evolving, experimental Makefile in which we explore
-# the incorporation of libraries - no change in the fundamental FLEXPART
-# code, just the use of libraries in compilation
-#
-###############################################################
-SHELL = /bin/bash
-MAIN = FLEXPART_GFORTRAN
-
-FC       = gfortran
-
-
-##############   Conditional compilation for testing  #################
-####  These are used for development and testing of .fp file functionality
-####  Hopefully they will be obsolete once WO4 is completed
-####
-####  For normal FLEXPART usage (no dumping or loading of .fp files), both
-####  of the DEFS should be commented out.
-####  
-####  Users should uncomment only one of the following.  They are mutually
-####  exclusive 
-####  
-####  Uncommenting GENFPFILESANDTEST will run FLEXPART normally, reading from
-####  met files, but every time a met file is processed, a .fp file with the 
-####  same basename will be created.  You will need to edit the destination
-####  of the .fp files, FPDIR, in getfields.F90
-
-#DEFS = -DGENFPFILESANDTEST 
-
-####
-####  Uncommenting TESTUSEGETFPFIELDS will cause FLEXPART to run from .fp files
-####  rather than met files.  The path to the .fp files, FPDIR, must be 
-####  hardcoded in
-####  FLEXPART.f90. 
-
-DEFS = -DTESTUSEGETFPFIELDS 
-
-#######################################################################
-
-INCPATH  = /opt/grib-api/include
-
-LIBPATH1 = /opt/grib-api/lib
-LIBPATH2 = /usr/lib/x86_64-linux-gnu
-FFLAGS   =   -O2 -m64 -mcmodel=medium -fconvert=little-endian -frecord-marker=4 -I$(INCPATH)
-LDFLAGS  = $(FFLAGS) -L$(LIBPATH2) -L$(LIBPATH1) -L./ -lmetio -lfputil -lgrib_api_f90 -lgrib_api -lm -ljasper
-
-METIO_LIB = libmetio.a
-FPUTIL_LIB = libfputil.a
-
-METIO_LIB_OBJS = fpmetbinary_mod.o getfields.o \
-fpgridcheck.o getfpfields.o \
-readwind.o readwind_gfs.o readwind_nests.o \
-calcpar.o calcpar_gfs.o calcpar_nests.o    \
-gridcheck_gfs.o \
-gridcheck.o \
-gridcheck_nests.o \
-verttransform.o verttransform_gfs.o verttransform_nests.o
-
-FPUTIL_LIB_OBJS = calcpv.o calcpv_nests.o caldate.o cmapf_mod.o \
-com_mod.o conv_mod.o ew.o flux_mod.o getrb.o getrc.o getvdep.o \
-getvdep_nests.o juldate.o shift_field_0.o obukhov.o obukhov_gfs.o \
-par_mod.o partdep.o pbl_profile.o psih.o psim.o qvsat.o raerod.o \
-richardson.o richardson_gfs.o scalev.o shift_field.o
-
-
-MODOBJS = \
-par_mod.o               com_mod.o \
-conv_mod.o              hanna_mod.o \
-interpol_mod.o          cmapf_mod.o \
-unc_mod.o               oh_mod.o \
-xmass_mod.o             flux_mod.o \
-point_mod.o             outg_mod.o \
-fpmetbinary_mod.o
-
-
-OBJECTS = \
-writeheader.o           assignland.o\
-part0.o \
-detectformat.o \
-coordtrafo.o            \
-drydepokernel.o         random.o \
-erf.o                   readavailable.o \
-readcommand.o \
-advance.o               readdepo.o \
-releaseparticles.o      \
-FLEXPART.o              readlanduse.o \
-getfields.o             init_domainfill.o\
-interpol_wind.o         readoutgrid.o \
-interpol_all.o          readpaths.o \
-readreceptors.o \
-readreleases.o \
-readspecies.o \
-interpol_misslev.o  \
-conccalc.o              \
-concoutput.o            \
-readOHfield.o\
-timemanager.o \
-interpol_vdep.o         interpol_rain.o \
-partoutput.o \
-hanna.o                 wetdepokernel.o \
-mean.o                  wetdepo.o \
-hanna_short.o           windalign.o \
-hanna1.o                initialize.o \
-interpol_all_nests.o \
-interpol_wind_nests.o   interpol_misslev_nests.o \
-interpol_vdep_nests.o   interpol_rain_nests.o \
-readageclasses.o        readpartpositions.o \
-calcfluxes.o            fluxoutput.o \
-skplin.o \
-convmix.o               calcmatrix.o \
-convmix_gfs.o		calcmatrix_gfs.o \
-convect43c.o               redist.o \
-sort2.o                 distance.o \
-centerofmass.o          plumetraj.o \
-openouttraj.o           \
-distance2.o \
-clustering.o            interpol_wind_short.o \
-interpol_wind_short_nests.o shift_field_0.o \
-outgrid_init.o \
-openreceptors.o         boundcond_domainfill.o\
-partoutput_short.o      readoutgrid_nest.o \
-outgrid_init_nest.o     writeheader_nest.o \
-concoutput_nest.o       wetdepokernel_nest.o \
-drydepokernel_nest.o    zenithangle.o \
-ohreaction.o            \
-initial_cond_calc.o     initial_cond_output.o \
-dynamic_viscosity.o     get_settling.o
-
-
-$(MAIN): $(MODOBJS) $(OBJECTS) $(METIO_LIB) $(FPUTIL_LIB)
-	$(FC) *.o -o $(MAIN) $(LDFLAGS)
-
-$(OBJECTS): $(MODOBJS)
-
-$(METIO_LIB): $(METIO_LIB_OBJS)
-	ar rcs $@ $^
-	rm $^
-
-$(FPUTIL_LIB): $(FPUTIL_LIB_OBJS)
-	ar rcs $@ $^
-	rm $^
-
-%.o: %.f90
-	$(FC) -c $(FFLAGS) $<
-
-%.o: %.F90
-	$(FC) -c $(FFLAGS) $(DEFS) $<
-
-clean:
-	rm *.o *.mod *.a
-
-