diff --git a/fossils.py b/fossils.py
index dce01c1a56e5f84f5bb530360369840173b2b073..6091edc220cc1e532fd3727410e2cf2fd6241aea 100644
--- a/fossils.py
+++ b/fossils.py
@@ -29,6 +29,7 @@ class Window(QWidget, Ui_Form):
         settings = QSettings()
         # self.restoreGeometry(settings.value("Geometry", self.saveGeometry()))
         self.inpFileLineEdit.setText(settings.value("inpFile", ""))
+        self.wrkspLineEdit.setText(settings.value("workspace", ""))
 
         self.action = 'cancelled'
 
@@ -48,18 +49,24 @@ class Window(QWidget, Ui_Form):
     def on_inpFilePushButton_pressed(self):
         # print("inpFilePushButton...")
         fname = QFileDialog.getOpenFileName(
-            None, 'Select input file', '', filter='Python File (*.py)')
-        # print(fname)    
+            None, 'Select input file', '', filter='Python File (*.py)')    
         pyfile = fname[0]
         if pyfile:
             self.inpFileLineEdit.setText(QDir.toNativeSeparators(pyfile))    
 
+    def on_wrkspPushButton_pressed(self):
+        dir = QFileDialog.getExistingDirectory(
+            self, "Select output folder", self.wrkspLineEdit.text())
+        if dir:
+            self.wrkspLineEdit.setText(QDir.toNativeSeparators(dir))  
+
     def closeEvent(self, event):
         """save settings to registry and quit
         """
         settings = QSettings()
         # settings.setValue("Geometry", QVariant(self.saveGeometry()))
         settings.setValue("inpfile", QVariant(self.inpFileLineEdit.text()))
+        settings.setValue("workspace", QVariant(self.wrkspLineEdit.text()))
         event.accept()
 
 
@@ -108,7 +115,7 @@ if __name__ == "__main__":
         print(f"OMP_NUM_THREADS=[not set]")
 
     
-    # ask for a file if not given
+    # ask for a file if not given => starts the GUI
     if not args.file:
         # QApplication.setAttribute(Qt.AA_EnableHighDpiScaling)
         app = QApplication(sys.argv)
@@ -118,23 +125,33 @@ if __name__ == "__main__":
         win.setWindowTitle("Fossils")
         win.show()
         app.lastWindowClosed.connect(app.quit)
-        app.exec_() 
+        app.exec_()
+        workspace = win.wrkspLineEdit.text()
         action = win.action
         testname = win.inpFileLineEdit.text()
     else:
+        workspace = None
         action = 'run'
         testname = os.path.abspath(args.file)
 
+
+    # run the simulation
     print(f'action={action}')
     if action=='run' or action=='post':
         testname = os.path.normcase(testname)  # F:/ => f:/ on Windows
         print(f'testname = {testname}')
         
         # create workspace
-        common = os.path.commonprefix((testname, thisdir + os.sep))
-        resdir = testname[len(common):].replace(os.sep, "_")
-        resdir, ext = os.path.splitext(resdir)
-        wdir = os.path.join('workspace', resdir)
+        if workspace:
+            common = os.path.basename(testname)
+            resdir = common.replace(os.sep, "_")
+            resdir, ext = os.path.splitext(resdir)            
+            wdir = os.path.join(workspace, resdir)
+        else:
+            common = os.path.commonprefix((testname, thisdir + os.sep))
+            resdir = testname[len(common):].replace(os.sep, "_")
+            resdir, ext = os.path.splitext(resdir)
+            wdir = os.path.join('workspace', resdir)
         print('workspace=', wdir)
 
         if not os.path.isdir(wdir):
diff --git a/fossils.ui b/fossils.ui
index 6d8ab5a32d04d868f8165d5ced92cf30079ea717..34123a86a37f16f8723ba00dca570f21e5705f8e 100644
--- a/fossils.ui
+++ b/fossils.ui
@@ -6,8 +6,8 @@
    <rect>
     <x>0</x>
     <y>0</y>
-    <width>546</width>
-    <height>104</height>
+    <width>827</width>
+    <height>124</height>
    </rect>
   </property>
   <property name="windowTitle">
@@ -15,24 +15,41 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout">
-     <item>
+    <layout class="QGridLayout" name="gridLayout">
+     <item row="0" column="0">
       <widget class="QLabel" name="inpFilelabel">
        <property name="text">
         <string>input file</string>
        </property>
       </widget>
      </item>
-     <item>
+     <item row="0" column="1">
       <widget class="QLineEdit" name="inpFileLineEdit"/>
      </item>
-     <item>
+     <item row="0" column="2">
       <widget class="QPushButton" name="inpFilePushButton">
        <property name="text">
         <string>...</string>
        </property>
       </widget>
      </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="wrksplabel">
+       <property name="text">
+        <string>workspace</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLineEdit" name="wrkspLineEdit"/>
+     </item>
+     <item row="1" column="2">
+      <widget class="QPushButton" name="wrkspPushButton">
+       <property name="text">
+        <string>...</string>
+       </property>
+      </widget>
+     </item>
     </layout>
    </item>
    <item>
diff --git a/ui_fossils.py b/ui_fossils.py
index 8df8ef6f161ca5e693d5f3deb47829fc719f13d7..9debdc697a394bc674e9818c58f0030adfac451c 100644
--- a/ui_fossils.py
+++ b/ui_fossils.py
@@ -14,21 +14,30 @@ from PyQt5 import QtCore, QtGui, QtWidgets
 class Ui_Form(object):
     def setupUi(self, Form):
         Form.setObjectName("Form")
-        Form.resize(546, 104)
+        Form.resize(827, 124)
         self.verticalLayout = QtWidgets.QVBoxLayout(Form)
         self.verticalLayout.setObjectName("verticalLayout")
-        self.horizontalLayout = QtWidgets.QHBoxLayout()
-        self.horizontalLayout.setObjectName("horizontalLayout")
+        self.gridLayout = QtWidgets.QGridLayout()
+        self.gridLayout.setObjectName("gridLayout")
         self.inpFilelabel = QtWidgets.QLabel(Form)
         self.inpFilelabel.setObjectName("inpFilelabel")
-        self.horizontalLayout.addWidget(self.inpFilelabel)
+        self.gridLayout.addWidget(self.inpFilelabel, 0, 0, 1, 1)
         self.inpFileLineEdit = QtWidgets.QLineEdit(Form)
         self.inpFileLineEdit.setObjectName("inpFileLineEdit")
-        self.horizontalLayout.addWidget(self.inpFileLineEdit)
+        self.gridLayout.addWidget(self.inpFileLineEdit, 0, 1, 1, 1)
         self.inpFilePushButton = QtWidgets.QPushButton(Form)
         self.inpFilePushButton.setObjectName("inpFilePushButton")
-        self.horizontalLayout.addWidget(self.inpFilePushButton)
-        self.verticalLayout.addLayout(self.horizontalLayout)
+        self.gridLayout.addWidget(self.inpFilePushButton, 0, 2, 1, 1)
+        self.wrksplabel = QtWidgets.QLabel(Form)
+        self.wrksplabel.setObjectName("wrksplabel")
+        self.gridLayout.addWidget(self.wrksplabel, 1, 0, 1, 1)
+        self.wrkspLineEdit = QtWidgets.QLineEdit(Form)
+        self.wrkspLineEdit.setObjectName("wrkspLineEdit")
+        self.gridLayout.addWidget(self.wrkspLineEdit, 1, 1, 1, 1)
+        self.wrkspPushButton = QtWidgets.QPushButton(Form)
+        self.wrkspPushButton.setObjectName("wrkspPushButton")
+        self.gridLayout.addWidget(self.wrkspPushButton, 1, 2, 1, 1)
+        self.verticalLayout.addLayout(self.gridLayout)
         self.horizontalLayout_2 = QtWidgets.QHBoxLayout()
         self.horizontalLayout_2.setObjectName("horizontalLayout_2")
         spacerItem = QtWidgets.QSpacerItem(40, 20, QtWidgets.QSizePolicy.Expanding, QtWidgets.QSizePolicy.Minimum)
@@ -51,5 +60,7 @@ class Ui_Form(object):
         Form.setWindowTitle(_translate("Form", "Form"))
         self.inpFilelabel.setText(_translate("Form", "input file"))
         self.inpFilePushButton.setText(_translate("Form", "..."))
+        self.wrksplabel.setText(_translate("Form", "workspace"))
+        self.wrkspPushButton.setText(_translate("Form", "..."))
         self.runPushButton.setText(_translate("Form", "Run"))
         self.viewPushButton.setText(_translate("Form", "View"))