diff --git a/CASCADE/Makefile b/CASCADE/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..1b92a14a274762de12de81660c3765855fffae76
--- /dev/null
+++ b/CASCADE/Makefile
@@ -0,0 +1,69 @@
+# Makefile for program cascade
+# developed by Jean Braun
+#              Research School of Earth Sciences
+#              The Australian National University
+#              Canberra, ACT 0200, Australia
+#              Tel:+61-2-6249-5512
+#              Fax:+61-2-6249-5443
+#              email: Jean.Braun@anu.edu.au
+
+include ../Makefile.p690
+#include ../Makefile.pathscale
+#include ../Makefile.ifort
+#include ../Makefile.macosx
+
+# object (all the interesting bits to do the erosion/sedimentation
+#         computations)
+
+OBJECTS = \
+cascade.o \
+check_for_removal.o \
+change_sea_level.o \
+fluvial_erosion.o \
+find_neighbours.o \
+find_neighbour_list.o \
+find_centre.o \
+find_donors.o \
+find_order.o \
+random.o \
+find_surface.o \
+check_mesh.o \
+debug.o \
+diffusion_erosion.o \
+erosional_properties.o \
+tectonic_uplift.o \
+find_catchment.o \
+flexure.o \
+read_but_skip_comment.o \
+iread_but_skip_comment.o \
+initialize_nodal_geometry.o \
+initialize_general_parameters.o \
+tectonic_movement.o \
+update_bedrock.o \
+update_time_step.o \
+write_output.o \
+orography.o \
+sinft.o \
+four1.o \
+realft.o \
+nn_remove.o \
+del_flip.o
+
+# compile rule:
+#
+.f.o:
+	$(F77) $(FLAGS) -c $<
+
+# make the library
+#
+cascade: $(OBJECTS) $(UTILS)
+	ar -rv libcascade.a $(OBJECTS)
+
+.PHONY: objclean
+objclean:
+	rm *.o
+
+.PHONY: clean
+clean: objclean
+	rm libcascade.a
+
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..b6d798143300add364e11e6355bd3d63c8eb248e
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,89 @@
+.SUFFIXES:.out .o .s .c .F .f .f90 .e .r .y .yr .ye .l .p .sh .csh .h
+
+include Makefile.pathscale
+#include Makefile.ifort
+#include Makefile.macosx
+
+
+OBJECTS = \
+module_threads.o \
+module_constants.o \
+module_invariants.o \
+module_gauss.o \
+module_definitions.o \
+module_random.o \
+module_colormap.o \
+DoRuRe.o \
+build_surface_octree.o \
+build_system_wsmp.o \
+calculate_lsf.o \
+compute_convergence_criterion.o \
+check_delaunay.o \
+compute_dhdx_dhdy_dhdz.o \
+compute_divergence.o \
+compute_pressure.o \
+compute_positive_volume.o \
+compute_normals.o \
+create_surfaces.o \
+define_bc.o \
+define_bc_ritske.o \
+define_bc_ritske_isurf.o \
+define_bc_sphere.o\
+define_bc_riedel.o\
+define_bc_3Dpunch.o \
+define_bc_2Dpunch.o \
+define_bc_2Dpunch_vert.o \
+define_bc_folding.o \
+define_bc_pipo.o \
+define_bc_jgr.o \
+define_bc_subduction.o \
+define_bc_parallipipede.o \
+define_bc_model1.o \
+define_surface.o\
+define_cloud.o\
+define_ov.o\
+do_leaf_measurements.o \
+embed_surface_in_octree.o \
+erosion.o \
+find_void_nodes.o \
+heap.o \
+improve_osolve.o\
+initialize_temperature.o \
+interpolate_ov_on_osolve.o \
+interpolate_velocity_on_surface.o \
+isostasy.o \
+make_matrix.o \
+make_cut.o \
+make_pressure.o \
+move_surface.o \
+move_cloud.o \
+pressure_cut.o \
+qsort.o \
+read_controlling_parameters.o \
+read_input_file.o \
+refine_surface.o \
+solve_with_pwssmp.o \
+solve_with_pwgsmp.o \
+strain_history.o \
+scanfile.o  slices.o smooth_pressures.o \
+toolbox.o \
+update_cloud_structure.o \
+update_cloud_fields.o \
+visualise_matrix.o \
+remove_point.o \
+wsmp_setup.o\
+DOUAR.o \
+write_global_output.o vrm.o
+
+.f90.o:
+	$(F90) $(FLAGS) $(INCLUDE) $*.f90
+
+.f.o:
+	$(F90) $(FLAGS) $*.f
+
+.c.o:
+	$(CC) $(FLAGS) $*.c
+
+douar:	$(OBJECTS)
+	$(F90) -O3 $(OPTIONS) $(OBJECTS) $(LIBS) -o douarwsmp.exe
+
diff --git a/NN/Makefile b/NN/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..be0c7bc1545d0e0de0be848d9b2e8d3a6fedd9c7
--- /dev/null
+++ b/NN/Makefile
@@ -0,0 +1,36 @@
+.SUFFIXES:.out .o .s .c .F .f .f90 .e .r .y .yr .ye .l .p .sh .csh .h
+
+include ../Makefile.p690
+#include ../Makefile.pathscale
+#include ../Makefile.ifort
+#include ../Makefile.macosx
+
+NAME=libnn
+COMPILE_OUT=$(NAME).compile
+
+OBJECTS_NN = \
+delaun.o \
+del_sub.o \
+nn.o \
+nnplot.o \
+qhullf_dummy.o \
+stack.o \
+stackpair.o \
+volume.o
+
+.f90.o:
+	$(F90) $(FLAGS) $(INCLUDE) -c $<  >>$(COMPILE_OUT) 2>&1
+
+.f.o:
+	$(F77) $(FLAGS) -c $<  >>$(COMPILE_OUT) 2>&1
+
+.c.o:
+	$(CC) $(FLAGS) -c $<  >>$(COMPILE_OUT) 2>&1
+
+$(NAME).a: $(OBJECTS_NN)
+	ar rcv $(NAME).a $(OBJECTS_NN)
+
+.PHONY: objclean
+objclean:
+	rm -f *.o $(COMPILE_OUT)
+
diff --git a/OCTREE/Makefile b/OCTREE/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..bdac842f731947c675e7cc337ee0823fad124e02
--- /dev/null
+++ b/OCTREE/Makefile
@@ -0,0 +1,37 @@
+.SUFFIXES:
+.SUFFIXES:.out .o .s .c .F .f .f90 .e .r .y .yr .ye .l .p .sh .csh .h
+
+include ../Makefile.p690
+#include ../Makefile.pathscale
+#include ../Makefile.ifort
+#include ../Makefile.macosx
+
+NAME=Octree
+COMPILE_OUT=$(NAME).compile
+
+OBJECTS_OCTREE = \
+OctreeBitPlus.o \
+diamtr_sloan.o \
+graph_sloan.o \
+isorti_sloan.o \
+label_sloan.o \
+number_sloan.o \
+profil_sloan.o \
+rootls_sloan.o
+
+.f90.o:
+	$(F90) -qsuffix=f=f90 $(FLAGS) $(INCLUDE) -c $<  >>$(COMPILE_OUT) 2>&1
+
+.f.o:
+	$(F77) $(FLAGS) -c $<  >>$(COMPILE_OUT) 2>&1
+
+.c.o:
+	$(CC) $(FLAGS) -c $<  >>$(COMPILE_OUT) 2>&1
+
+lib$(NAME).a:	$(OBJECTS_OCTREE)
+	ar rcv lib$(NAME).a $(OBJECTS_OCTREE)
+
+.PHONY: objclean
+objclean:
+	rm -f *.o $(COMPILE_OUT)
+