Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/EnumDefinitions.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/EnumDefinitions.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/EnumDefinitions.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/enum/EnumDefinitions.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/SMBforcing.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/SMBforcing.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/SMBforcing.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/SMBforcing.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/basalforcings.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/basalforcings.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/basalforcings.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/basalforcings.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/calving.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/calving.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/calving.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/calving.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/damage.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/damage.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/damage.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/damage.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/flowequation.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/flowequation.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/flowequation.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/flowequation.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/friction.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/friction.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/friction.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/friction.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/geometry.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/geometry.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/geometry.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/geometry.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/hydrologyshreve.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/hydrologyshreve.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/hydrologyshreve.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/hydrologyshreve.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/initialization.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/initialization.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/initialization.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/initialization.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/inversion.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/inversion.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/inversion.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/inversion.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/levelset.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/levelset.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/levelset.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/levelset.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mask.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mask.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mask.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/mask.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/masstransport.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/masstransport.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/masstransport.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/masstransport.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/matice.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/matice.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/matice.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/matice.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/matlabfunc.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/matlabfunc.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/matlabfunc.js	(revision 20831)
@@ -0,0 +1,62 @@
+function ones(...args) {
+    var array = [];
+    for (var i = 0; i < args[0]; ++i) {
+        array.push(args.length === 1 ? 1 : ones(args.slice(1)));
+    }
+    return array;
+}
+
+function zeros(...args) {
+    var array = [];
+    for (var i = 0; i < args[0]; ++i) {
+        array.push(args.length === 0 ? 1 : ones(args.slice(1)));
+    }
+    return array;
+}
+
+function numel(matrix) { // Assume all rows are the same length
+    return matrix.length * (matrix.constructor === Array ? matrix[0].length : 1);
+}
+
+function ArrayFill2D(arr, value) {
+    for (var i = 0; i < newarr.length; ++i) {
+        for (var j = 0; j < newarr[0].length; ++j) {
+            arr[i][j] = value;
+        }
+    }
+    return arr;
+}
+
+function ArrayFindNot2D(array, value) {
+    var indices = [];
+
+    for (var i = 0; i < array.length; ++i) {
+        for (var j = 0; j < array[0].length; ++j) {
+            if (array[i][j] !== value) {
+                indices.push(array[i][j]);
+            }
+        }
+    }
+
+    return indices;
+}
+
+function ArrayFind2D(array, value) {
+    var indices = [];
+
+    for (var i = 0; i < array.length; ++i) {
+        for (var j = 0; j < array[0].length; ++j) {
+            if (array[i][j] === value) {
+                indices.push(array[i][j]);
+            }
+        }
+    }
+
+    return indices;
+}
+
+function getMatrixWidth(matrix) {
+    return matrix.reduce(function (result, row) {
+        return Math.max(result, row.length);
+    }, 0);
+}
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mesh2d.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mesh2d.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mesh2d.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/mesh2d.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mesh3dprisms.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mesh3dprisms.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/mesh3dprisms.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/mesh3dprisms.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/model.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/model.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/model.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/model.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/project3d.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/project3d.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/project3d.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/extrusion/project3d.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/qmu.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/qmu.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/qmu.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/qmu.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/stressbalance.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/stressbalance.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/stressbalance.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/stressbalance.js
Index: /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/thermal.js
===================================================================
--- /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/thermal.js	(revision 20831)
+++ /issm/trunk-jpl/jenkins/javascript/karma/lib/bin/thermal.js	(revision 20831)
@@ -0,0 +1,1 @@
+link /home/andy/Programming/Research/trunk-jpl/src/m/classes/thermal.js
