diff --git a/flash2d/src/options-sphere/Flash90_stacked.F90 b/flash2d/src/options-sphere/Flash90_stacked.F90
new file mode 100644
index 0000000000000000000000000000000000000000..191ed09a055af97e2ff731cb591ac8ae5350d7d8
--- /dev/null
+++ b/flash2d/src/options-sphere/Flash90_stacked.F90
@@ -0,0 +1,106 @@
+!*****************************************************************
+!
+! PROJECT:
+!	FLASH90 means
+!	        FLexible Adaptive Semi-Lagrangian Hack
+!	        written in Fortran 90
+! NAME:
+!	Flash90
+! FUNCTION:
+!	main program (driver routine for the adaptive SLM)
+! SYNTAX:
+!	flash90 [options]
+! ON INPUT:
+!
+! ON OUTPUT:
+!
+! CALLS:
+!
+! COMMENTS:
+!
+! LIBRARIES:
+!	USEs several fortran 90 modules
+! REFERENCES:
+!	this is a complete reimplementation of STASL
+! VERSION(S):
+!	1. original version		j. behrens	11/96
+!	2. tidied up a little		j. behrens	7/97
+!	3. new control struct		j. behrens	12/97
+!	4. compliant to amatos 1.0	j. behrens	12/2000
+!	5. compliant to amatos 1.2	j. behrens	3/2002
+!   6. added visnetplot         f. klaschka 12/2003
+!   7. refactured a bit...      j. behrens  5/2016
+!
+!*****************************************************************
+	PROGRAM flash90
+
+!---------- modules
+
+	USE FLASH_parameters
+	USE IO_utils
+        !-- added for visnetplot [flo]:
+	USE GRID_api
+	USE ADV_semilagrange
+
+!---------- local declarations
+
+	IMPLICIT NONE
+	
+	INTEGER             :: i_dummy
+
+!---------- set FLASH description in global datastruct
+
+	GRID_parameters%program_name= 'Flash90                                         '
+	GRID_parameters%version= 0
+	GRID_parameters%subversion= 9
+	GRID_parameters%patchversion= 0
+	GRID_parameters%datemonth= 5
+	GRID_parameters%dateyear= 2016
+
+!---------- read command line options
+
+	CALL io_getcmdline(p_contr)
+
+!---------- initialize grid generator
+
+	IF(p_contr%cmd%l_output) THEN
+	  IF(p_contr%cmd%l_logging) THEN
+	    CALL grid_initialize(i_output=i_redirout, i_logging=i_redirlog, r_radius=r_earthrad)
+	  ELSE
+	    CALL grid_initialize(i_output=i_redirout, r_radius=r_earthrad)
+	  END IF
+	ELSE
+	  IF(p_contr%cmd%l_logging) THEN
+	    CALL grid_initialize(i_logging=i_redirlog, r_radius=r_earthrad)
+	  ELSE
+	    CALL grid_initialize(r_radius=r_earthrad)
+	  END IF
+	END IF
+
+!---------- read parameter input from file
+
+    CALL io_initparams(p_contr)
+    CALL io_getbatchinput(p_contr)
+
+!---------- print global parameters
+
+	CALL io_putparameters(p_contr)
+
+!---------- set up advection starting conditions, initialize grid, etc.
+
+	CALL slm_initialize(p_grid, p_contr)
+
+!---------- call the (major) routine for timestepping
+
+	CALL slm_timestepping(p_grid, p_contr)
+
+!---------- terminate the SLM (gracefully free memory, terminate grid, etc.)
+
+	CALL slm_finish(p_grid, p_contr)
+
+!---------- terminate grid generator
+
+	CALL grid_terminate
+
+	STOP
+	END PROGRAM flash90