diff --git a/tensorproductmultigrid_Source/compile_tensor b/tensorproductmultigrid_Source/compile_tensor
new file mode 100755
index 0000000000000000000000000000000000000000..b5d850a1c3b588c61c7e0e91fb481d6101ee5508
--- /dev/null
+++ b/tensorproductmultigrid_Source/compile_tensor
@@ -0,0 +1,38 @@
+#!/bin/bash
+
+set -x
+set -e
+
+OPT_BASE="  -Mbackslash -Mextend -Kieee -nofma  -Mallocatable=95 "
+#OPT_BASE="  -Mbackslash -Mextend   -Mallocatable=95 "
+
+#OPTLEVEL="  -O2 -ta=multicore,tesla:nofma,managed "
+#OPTLEVEL="  -g -O2 -ta=multicore,tesla:managed "
+OPTLEVEL=" -O2 -ta=multicore,tesla,nofma,cc35,cc50,cuda10.0,managed -Minfo=accel,ccff -Mprof=ccff  "
+#OPTLEVEL=" -O2 -ta=tesla:nofma,managed "
+
+OPT="-r8 -DCARTESIANGEOMETRY -DOVERLAPCOMMS -DPIECEWISELINEAR -Mpreprocess ${OPT_BASE} ${OPTLEVEL} "
+
+F90="mpif90 ${OPT} "
+
+rm -f *.o *.mod mg_main_mnh
+
+pgf90 -show ${OPT} mg_main_mnh.f90
+
+
+for file in parameters.f90 messages.f90 datatypes.f90 timer.f90 communication.f90 discretisation.f90 \
+            solver.f90 conjugategradient.f90 multigrid.f90 profiles.f90 mode_mg_read_param.f90 \
+	    mode_mg.f90 mode_mg_read_param.f90 \
+	    dblas.f90 
+do
+echo ====== file=$file
+${F90} -c $file
+done
+
+
+${F90} -o mg_main_mnh mg_main_mnh.f90 *.o
+
+rm -f *.o *.mod
+
+
+