I checked with John Evans and he said a related problem surfaced recently and needed changes to the mexnc and snctools download. I updated that from sourceforge and now things are basically working. 
However, two other problems arose. 
The first is that nc_read doesn't have an option to handle the character type variable 'spherical' so I added that to nc_read:
Code: Select all
des003:myroms wilkin$ svn diff
Index: utility/nc_read.m
===================================================================
--- utility/nc_read.m	(revision 357)
+++ utility/nc_read.m	(working copy)
@@ -319,6 +319,8 @@
     [f,status]=mexnc('get_var_float' ,ncid,varid);
   elseif (nctype == NC_INT),
     [f,status]=mexnc('get_var_int'   ,ncid,varid);
+  elseif (nctype == NC_CHAR),
+    [f,status]=mexnc('get_var_text'  ,ncid,varid);
   else,
     [f,status]=mexnc('ncvarget1'     ,ncid,varid,[0]);
   end,
The second issue is that matlab command "strmatch" returns [] if there is no match, and this fails the logical test to read a coastline file. If a grid file has coastline data already in it (as variables lon_coast and lat_coast) it won't trip this error. So I modified editmask to catch this case. 
Now I'm in back business, using editmask on my Macbook with Matlab version 
7.7.0.471 (R2008b)
Code: Select all
Index: landmask/editmask.m
===================================================================
--- landmask/editmask.m	(revision 357)
+++ landmask/editmask.m	(working copy)
@@ -279,7 +279,8 @@
    got_Clon=strmatch('lon_coast',varnam);
    got_Clat=strmatch('lat_coast',varnam);
 
-   if (~(got_Clon & got_Clat)),
+   %if (~(got_Clon & got_Clat)),
+   if isempty(got_Clon) | isempty(got_Clat)
      if (any(coast_file=='*')),
        [fn,pth]=uigetfile(coast_file,'Select Coastline file...');
        if (~fn),