diff --git a/flow/socsim b/flow/socsim
index a2f437240dc81faf7eb5f47ac84b4cd92aaef1e4..194c887da51b7c398a430ffb98f9f61ed7138a02 100755
--- a/flow/socsim
+++ b/flow/socsim
@@ -6,19 +6,42 @@
 #
 # David Mapstone (d.a.mapstone@soton.ac.uk)
 #
-# Copyright  2022, SoC Labs (www.soclabs.org)
+# Copyright 2023, SoC Labs (www.soclabs.org)
 #-----------------------------------------------------------------------------
 
 #!/usr/bin/env bash
 
-DEFAULT_SIMULATOR="ivlog"
-if [[ -z "${SIMULATOR}" ]]; then 
-    SIMULATOR=$DEFAULT_SIMULATOR
-fi
-# $PROJECT_DIR"/flow/simulators/"$SIMULATOR"_sim.sh" $@
+# Check arguments passed to SoCSim
+if [ $# -eq 0 ]
+  then
+    echo "No arguments supplied"
+else 
 
-# Find a simulation script in the SoCSim environments of all subrepos
-simscript=$(find ${SOCSIM_PATH//:/\ } -name "${1}.sh")
+    # If clean command passed in clean a specific directory or all
+    if [ ${1} == "clean" ]; then
+        if [ $# -eq 1 ];  then
+            echo "No clean arguments supplied"
+        else
+            if [ ${2} == "all" ]; then
+                # Clean all simualation directories
+                echo "Cleaning all Project Simulation Directories"
+                rm -rf $PROJECT_DIR/simulate/sim
+                mkdir -p $PROJECT_DIR/simulate/sim
+            else
+                # Remove specific simulaiton directory
+                SIM_DIR=$PROJECT_DIR/simulate/sim/${2}
+                if [ -d "$SIM_DIR" ]; then
+                    rm -rf $SIM_DIR
+                else 
+                    echo "Simulation Directory '${2}' doesn't exist"
+                fi
+            fi
+        fi
+    fi
 
-# Run Script if Found
-$simscript $@
\ No newline at end of file
+    # Find a simulation script in the SoCSim environments of all subrepos
+    simscript=$(find ${SOCSIM_PATH//:/\ } -name "${1}.sh")
+
+    # Run Script if Found
+    $simscript $@
+fi
\ No newline at end of file