Index: trunk/ppSub/src/ppSubArguments.c
===================================================================
--- trunk/ppSub/src/ppSubArguments.c	(revision 14247)
+++ trunk/ppSub/src/ppSubArguments.c	(revision 14294)
@@ -107,5 +107,5 @@
     if (string) {
         psArray *array = psStringSplitArray(string, ", ", false); // Array of strings
-        vector = psVectorAlloc(array->n, PS_TYPE_F32);
+        vector = psVectorAlloc(array->n, type);
         for (int i = 0; i < array->n; i++) {
             const char *subString = array->data[i]; // String with a value
@@ -195,4 +195,5 @@
     psMetadataAddU8(arguments,  PS_LIST_TAIL, "-mask-blank", 0, "Mask value for blank region", 0);
     psMetadataAddBool(arguments,  PS_LIST_TAIL, "-reverse", 0, "Reverse sense of subtraction?", false);
+    psMetadataAddBool(arguments,  PS_LIST_TAIL, "-generate-mask", 0, "Generate mask if not supplied?", false);
 
     if (argc == 1 || !psArgumentParse(arguments, &argc, argv) || argc != 4) {
@@ -255,4 +256,6 @@
     psMetadataAddBool(config->arguments, PS_LIST_TAIL, "REVERSE", 0, "Reverse sense of subtraction",
                       psMetadataLookupBool(NULL, arguments, "-reverse"));
+    psMetadataAddBool(config->arguments, PS_LIST_TAIL, "MASK.GENERATE", 0, "Generate mask if not supplied",
+                      psMetadataLookupBool(NULL, arguments, "-generate-mask"));
 
     // Translate the kernel type
