Index: /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-matlab.sh
===================================================================
--- /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-matlab.sh	(revision 27588)
+++ /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-matlab.sh	(revision 27589)
@@ -30,5 +30,5 @@
 LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself
 LIBGFORTRAN_DIST="${ISSM_DIR}/lib/libgfortran.so.5" # Important the file name matches the SONAME entry in the binaries and other shared libraries which link to it
-MATLAB_NROPTIONS="'benchmark','all','exclude',[125,126,234,235,418,420,435,444,445,701,702,703,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1201,1202,1203,1204,1205,1206,1207,1208,1301,1302,1303,1304,1401,1402,1601,1602,2002,2003,2004,2006,2007,2008,2010,2011,2021,2051,2052,2053,2084,2085,2090,2101,2424,2425,3001:3200,3201,3202,3300,3480,3481,4001,4002,4003]" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
+MATLAB_NROPTIONS="'benchmark','all','exclude',[125,126,129,234,235,418,420,435,444,445,701,702,703,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1201,1202,1203,1204,1205,1206,1207,1208,1301,1302,1303,1304,1401,1402,1601,1602,2002,2003,2004,2006,2007,2008,2010,2011,2021,2051,2052,2053,2084,2085,2090,2101,2424,2425,3001:3200,3201,3202,3300,3480,3481,4001,4002,4003]" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
 MATLAB_PATH="/usr/local/MATLAB/R2019b"
 
Index: /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-python-3.sh
===================================================================
--- /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-python-3.sh	(revision 27588)
+++ /issm/trunk-jpl/packagers/linux/package-issm-linux-binaries-python-3.sh	(revision 27589)
@@ -30,5 +30,5 @@
 LIBGFORTRAN="/usr/lib/x86_64-linux-gnu/libgfortran.so.5.0.0" # Important that this is the library itself
 LIBGFORTRAN_DIST="${ISSM_DIR}/lib/libgfortran.so.5" # Important the file name matches the SONAME entry in the binaries and other shared libraries which link to it
-PYTHON_NROPTIONS="--benchmark all --exclude 125 126 234 235 418 420 435 444 445 701 702 703 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1401 1402 1601 1602 2002 2003 2004 2005 2006 2007 2008 2010 2011 2021 2051 2052 2053 2084 2085 2090 2101 2424 2425 3001:3200 3201 3202 3300 3480 3481 4001 4002 4003" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
+PYTHON_NROPTIONS="--benchmark all --exclude 125 126 129 234 235 418 420 435 444 445 701 702 703 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1401 1402 1601 1602 2002 2003 2004 2005 2006 2007 2008 2010 2011 2021 2051 2052 2053 2084 2085 2090 2101 2424 2425 3001:3200 3201 3202 3300 3480 3481 4001 4002 4003" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
 
 ## Environment
Index: /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-matlab.sh
===================================================================
--- /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-matlab.sh	(revision 27588)
+++ /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-matlab.sh	(revision 27589)
@@ -40,5 +40,5 @@
 ## Constants
 #
-MATLAB_NROPTIONS="'benchmark','all','exclude',[125,126,234,235,418,420,435,444,445,701,702,703,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1201,1202,1203,1204,1205,1206,1207,1208,1301,1302,1303,1304,1401,1402,1601,1602,2002,2003,2004,2006,2007,2008,2010,2011,2021,2051,2052,2053,2084,2085,2090,2101,2424,2425,3001:3200,3201,3202,3300,3480,3481,4001,4002,4003]" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
+MATLAB_NROPTIONS="'benchmark','all','exclude',[125,126,129,234,235,418,420,435,444,445,701,702,703,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1201,1202,1203,1204,1205,1206,1207,1208,1301,1302,1303,1304,1401,1402,1601,1602,2002,2003,2004,2006,2007,2008,2010,2011,2021,2051,2052,2053,2084,2085,2090,2101,2424,2425,3001:3200,3201,3202,3300,3480,3481,4001,4002,4003]" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
 MATLAB_PATH="/Applications/MATLAB_R2022b.app"
 
@@ -113,5 +113,4 @@
 if [ -f ${ISSM_DIR}/externalpackages/gmt/install/bin/gmt-config ]; then
 	cp ${ISSM_DIR}/externalpackages/gmt/install/bin/gmt .
-	cp ${ISSM_DIR}/externalpackages/gmt/install/bin/gmtselect .
 else
 	echo "GMT not found"
Index: /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-python-3.sh
===================================================================
--- /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-python-3.sh	(revision 27588)
+++ /issm/trunk-jpl/packagers/mac/package-issm-mac-binaries-python-3.sh	(revision 27589)
@@ -39,5 +39,5 @@
 ## Constants
 #
-PYTHON_NROPTIONS="--benchmark all --exclude 125 126 234 235 418 420 435 444 445 701 702 703 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1401 1402 1601 1602 2002 2003 2004 2005 2006 2007 2008 2010 2011 2021 2051 2052 2053 2084 2085 2090 2101 2424 2425 3001:3200 3201 3202 3300 3480 3481 4001 4002 4003" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
+PYTHON_NROPTIONS="--benchmark all --exclude 125 126 129 234 235 418 420 435 444 445 701 702 703 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1401 1402 1601 1602 2002 2003 2004 2005 2006 2007 2008 2010 2011 2021 2051 2052 2053 2084 2085 2090 2101 2424 2425 3001:3200 3201 3202 3300 3480 3481 4001 4002 4003" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
 
 ## Environment
@@ -105,5 +105,4 @@
 if [ -f ${ISSM_DIR}/externalpackages/gmt/install/bin/gmt-config ]; then
 	cp ${ISSM_DIR}/externalpackages/gmt/install/bin/gmt .
-	cp ${ISSM_DIR}/externalpackages/gmt/install/bin/gmtselect .
 else
 	echo "GMT not found"
Index: /issm/trunk-jpl/packagers/mac/test-issm-mac-binaries-matlab.sh
===================================================================
--- /issm/trunk-jpl/packagers/mac/test-issm-mac-binaries-matlab.sh	(revision 27588)
+++ /issm/trunk-jpl/packagers/mac/test-issm-mac-binaries-matlab.sh	(revision 27589)
@@ -10,6 +10,6 @@
 ## Constants
 #
-INSTALL_DIR=.
-MATLAB_NROPTIONS="'benchmark','all','exclude',[125,126,234,235,418,420,435,444,445,701,702,703,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1201,1202,1203,1204,1205,1206,1207,1208,1301,1302,1303,1304,1401,1402,1601,1602,2002,2003,2004,2006,2007,2008,2010,2011,2021,2051,2052,2053,2084,2085,2090,2101,2424,2425,3001:3200,3201,3202,3300,3480,3481,4001,4002,4003]" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
+INSTALL_DIR=${PWD}
+MATLAB_NROPTIONS="'benchmark','all','exclude',[125,126,129,234,235,418,420,435,444,445,701,702,703,1101,1102,1103,1104,1105,1106,1107,1108,1109,1110,1201,1202,1203,1204,1205,1206,1207,1208,1301,1302,1303,1304,1401,1402,1601,1602,2002,2003,2004,2006,2007,2008,2010,2011,2021,2051,2052,2053,2084,2085,2090,2101,2424,2425,3001:3200,3201,3202,3300,3480,3481,4001,4002,4003]" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
 MATLAB_PATH="/Applications/MATLAB_R2022b.app"
 PKG="ISSM-macOS-MATLAB"
Index: /issm/trunk-jpl/packagers/mac/test-issm-mac-binaries-python-3.sh
===================================================================
--- /issm/trunk-jpl/packagers/mac/test-issm-mac-binaries-python-3.sh	(revision 27588)
+++ /issm/trunk-jpl/packagers/mac/test-issm-mac-binaries-python-3.sh	(revision 27589)
@@ -10,7 +10,7 @@
 ## Constants
 #
-INSTALL_DIR=.
+INSTALL_DIR=${PWD}
 PKG="ISSM-macOS-Python-3"
-PYTHON_NROPTIONS="--benchmark all --exclude 125 126 234 235 418 420 435 444 445 701 702 703 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1401 1402 1601 1602 2002 2003 2004 2005 2006 2007 2008 2010 2011 2021 2051 2052 2053 2084 2085 2090 2101 2424 2425 3001:3200 3201 3202 3300 3480 3481 4001 4002 4003" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
+PYTHON_NROPTIONS="--benchmark all --exclude 125 126 129 234 235 418 420 435 444 445 701 702 703 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1201 1202 1203 1204 1205 1206 1207 1208 1301 1302 1303 1304 1401 1402 1601 1602 2002 2003 2004 2005 2006 2007 2008 2010 2011 2021 2051 2052 2053 2084 2085 2090 2101 2424 2425 3001:3200 3201 3202 3300 3480 3481 4001 4002 4003" # NOTE: Combination of test suites from basic, Dakota, and Solid Earth builds, with tests that require a restart and those that require the JVM excluded
 
 COMPRESSED_PKG="${PKG}.zip"
Index: /issm/trunk-jpl/src/m/coordsystems/gmtmask.m
===================================================================
--- /issm/trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 27588)
+++ /issm/trunk-jpl/src/m/coordsystems/gmtmask.m	(revision 27589)
@@ -5,4 +5,7 @@
 %      mask.ocean = gmtmask(md.mesh.lat,md.mesh.long);
 %
+%	TODO: Standardize discovery of GMT bin path and whether or not we have GMT 
+%	modules (i.e. `gmt select`) between this file, gmtmask.py, and 
+%	gmtmaskparallel.m
 
 	%are we doing a recursive call? 
@@ -31,12 +34,17 @@
 	%First, write our lat,long file for gmt:
 	nv=length(lat);
-	filename_all = ['all_vertices-' num2str(feature('GetPid')) '.txt']; 
-	filename_oce = ['oce_vertices-' num2str(feature('GetPid')) '.txt']; 
+	filename_suffix=[num2str(feature('GetPid')) '.txt'];
+	filename_all=['all_vertices-' filename_suffix]; 
+	filename_oce=['oce_vertices-' filename_suffix];
 	dlmwrite(filename_all,[long lat (1:nv)'],'delimiter','\t','precision',10);
 
 	%figure out which vertices are on the ocean, which one on the continent:
-	[status,result] = system(['gmt select ./' filename_all ' -h0 -Df -R0/360/-90/90 -A0 -JQ180/200 -Nk/s/s/k/s > ./' filename_oce]);
+	gmt_select_options='-h0 -Df -R0/360/-90/90 -A0 -JQ180/200 -Nk/s/s/k/s';
+	[status,result]=system(['gmt select ./' filename_all ' ' gmt_select_options ' > ./' filename_oce]);
 	if status~=0,
-		error(result);
+		[status,result] = system(['gmtselect ./' filename_all ' ' gmt_select_options ' > ./' filename_oce]);
+		if status~=0,
+			error(result);
+		end
 	end
 
Index: /issm/trunk-jpl/src/m/coordsystems/gmtmask.py
===================================================================
--- /issm/trunk-jpl/src/m/coordsystems/gmtmask.py	(revision 27588)
+++ /issm/trunk-jpl/src/m/coordsystems/gmtmask.py	(revision 27589)
@@ -10,5 +10,5 @@
 
 def gmtmask(lat, long, *args):
-    """GMTMASK - figure out which lat, long points are on the ocean
+    """gmtmask - figure out which lat, long points are on the ocean
 
     Usage:
@@ -44,5 +44,14 @@
 
     # Figure out which vertices are on the ocean, which one on the continent:
-    subprocess.call('gmt select ./all_vertices.txt -h0 -Df -R0/360/-90/90 -A0 -JQ180/200 -Nk/s/s/k/s > ./oce_vertices.txt', shell=True)
+    gmt_select_options = '-h0 -Df -R0/360/-90/90 -A0 -JQ180/200 -Nk/s/s/k/s'
+    subproc_cmd = 'gmt select ./all_vertices.txt ' + gmt_select_options + ' > ./oce_vertices.txt'
+    subproc = subprocess.Popen(subproc_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
+    outs, errs = subproc.communicate()
+    if errs != '':
+        subproc_cmd = 'gmtselect ./all_vertices.txt ' + gmt_select_options + ' > ./oce_vertices.txt'
+        subproc = subprocess.Popen(subproc_cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, universal_newlines=True)
+        outs, errs = subproc.communicate()
+        if errs != '':
+            raise RuntimeError('gmtmask: calls to both gmt and gmtselect failed: {}'.format(errs))
 
     # Read the con_vertices.txt file and flag our mesh vertices on the continent
Index: /issm/trunk-jpl/src/m/coordsystems/gmtmaskparallel.m
===================================================================
--- /issm/trunk-jpl/src/m/coordsystems/gmtmaskparallel.m	(revision 27588)
+++ /issm/trunk-jpl/src/m/coordsystems/gmtmaskparallel.m	(revision 27589)
@@ -27,20 +27,27 @@
 
 	%Find path to gmt, list all possible known paths to gmt (you may need to add yours to the list)
-   paths = {[issmdir() '/bin/gmt'],[issmdir() '/externalpackages/gmt/install/bin/gmt'],'/Applications/GMT-5.4.3.app/Contents/Resources/bin/gmt'};
-   gmtpath = '';
-   for i=paths
-      if exist(i{1},'file'),
-         gmtpath = i{1};
+	paths = {[issmdir() '/bin'],[issmdir() '/externalpackages/gmt/install/bin'],'/Applications/GMT-5.4.3.app/Contents/Resources/bin'};
+	gmt_path = '';
+	for i=paths
+		if exist([i{1} '/gmt'],'file'),
+			gmt_path = i{1};
 			break;
-      end
-   end
-   if isempty(gmtpath),
+		end
+	end
+	if isempty(gmt_path),
 		error('gmt not found, make sure it is properly installed, or add its path to this file (line 26)');
-   end
+	end
+
+	%Figure out if we have gmtselect executable
+	if exist([gmt_path '/gmtselect'],'file'),
+		gmt_exec=[gmt_path '/gmtselect'];
+	else,
+		gmt_exec=[gmt_path '/gmtselect'];
+	end
 
 	%Build xjobs script:
 	fid=fopen('xjobs.script','w');
 	for i=1:length(nnv)-1,
-		fprintf(fid,'%s gmt select ./all_vertices%i.txt -h0 -Df -R0/360/-90/90  -A0 -JQ180/200 -Nk/s/s/k/s > ./oce_vertices%i.txt\n',gmtpath,i,i);
+		fprintf(fid,'%s ./all_vertices%i.txt -h0 -Df -R0/360/-90/90 -A0 -JQ180/200 -Nk/s/s/k/s > ./oce_vertices%i.txt\n',gmt_exec,i,i);
 	end
 	fclose(fid);
@@ -62,4 +69,4 @@
 	mask=zeros(nv,1);
 	mask(flags)=1;
-	
+
 	system('rm -rf ./all_vertices*.txt ./oce_vertices*.txt vertices.txt ./gmt.history ./xjobs.script');
