<div dir="ltr"><div dir="ltr">Frequently the most relevant error message is the first one printed.  That is true in this case: "<span style="color:rgb(0,0,0);font-family:arial,sans-serif">NetCDF: One or more variable sizes violate format constraints".</span>  The message about define mode is not relevant.  However, the later reference to line 89 is important.</div><div dir="ltr"><br></div><div>"Violate format constraints" probably means that the write statement at line 89 (fishing_hours) is trying to expand your output file past the 2-Gbyte normal limit for a netcdf-3 file.  Use printVarSummary just before that write statement, to examine the dimensions of the output variable.</div><div><br></div><div>Also try inserting a temporary "exit" statement just before the write statement, to examine the format and current dimensions of the output file at an intermediate stage, with the ncdump -hs shell command.  Between the file dump and size information from printVarSummary above, you may find the cause of this particular error.</div><div><br></div><div>If you need to write more that 2 Gbytes, then switch to "netcdf-4 classic" output format.  See documentation for addfile and setfileoption for how to select the output format when creating a new file.</div><div><br></div><div>I offer these debugging suggestions because I can not analyze your script for you.  I can help interpret diagnostic messages.</div><div><br></div><div>Also please note that you copied one of my previous corrections improperly.  In all cases the longitude offset should be +360, never +180.</div><div><br></div><div>Good luck.</div><div><br></div><div>--Dave</div><div dir="ltr"><br></div><div dir="ltr"><br></div><div class="gmail_quote"><div dir="ltr">On Sat, Jan 12, 2019 at 5:32 PM Sam McClatchie <<a href="mailto:smcclatchie@fishocean.info" target="_blank">smcclatchie@fishocean.info</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
  
    
  
  <div bgcolor="#FFFFFF">
    Thanks Dave and Dennis for your suggestions. <br>
    <br>
    I have tried all three suggested methods, but I am getting the same
    strange error message when any of these indexed substitutions is
    added to my code (which works without these additions to cross the
    dateline).<br>
    <br>
    Here are the errors returned following each suggestion:<br>
    <br>
    ; Dennis Shea suggestion<br>
     lon             = f->lon<br>
     lon             = where(lon.lt.0, lon+360, lon)   ; lon =>
    0-to-360 <br>
    <br>
    ncendef: ncid 131072: NetCDF: One or more variable sizes violate
    format constraints<br>
    fatal:NetCDF: Operation not allowed in define mode: error attempting
    to write variable (fishing_hours) to file (../data/Socal_GFW.nc)<br>
    fatal:["Execute.c":8637]:Execute: Error occurred at or near line 89
    in file selection_by_polygon_netcdf_data.ncl<br>
    <br>
    ncclose: ncid 131072: NetCDF: One or more variable sizes violate
    format constraints<br>
    <br>
    ------------------------------------<br>
    <br>
    ; Dave Allured suggestions<br>
    xind = ind(lon.lt.0)<br>
    lon(xind) = lon(xind) + 360  <br>
    <br>
    or<br>
    <br>
    lon(ind(lon.lt.0)) = lon(ind(lon.lt.0)) + 180 <br>
    <br>
    ncendef: ncid 131072: NetCDF: One or more variable sizes violate
    format constraints<br>
    fatal:NetCDF: Operation not allowed in define mode: error attempting
    to write variable (fishing_hours) to file (../data/Socal_GFW.nc)<br>
    fatal:["Execute.c":8637]:Execute: Error occurred at or near line 89
    in file selection_by_polygon_netcdf_data.ncl<br>
    <br>
    ncclose: ncid 131072: NetCDF: One or more variable sizes violate
    format constraints<br>
    ----------------------------------<br>
    <br>
    These errors strike me as strange because the fishing hour variable
    writes out just fine without the suggested additions to cross the
    dateline. Do the suggested new additions also require a shift from
    "define mode" before writing to netcdf? I do close the output file
    after writing.<br>
    <br>
    Puzzled,<br>
    Sam<br>
    <br>
    <div class="m_2090230600965030089gmail-m_-2611889024136365999moz-cite-prefix">On 13/01/19 11:18 AM, Dennis Shea
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">
        <div>Rather than:</div>
        <div>     lon(ind(lon.lt.0)) = -lon(ind(lon.lt.0)) + 180   <br>
        </div>
        <div>which invokes the <b>ind</b>  function<b> twice</b>, you
          could do</div>
        <div>     ilon0 := <a href="https://www.ncl.ucar.edu/Document/Functions/Built-in/ind.shtml" target="_blank"><b>ind</b></a>(lon.lt.0)</div>
        <div>     lon(ilon0) = -lon(ilon0) + 180</div>
        <div><br>
        </div>
        <div>Personally, I would do the following upon input<br>
        </div>
        <div><br>
        </div>
        <div dir="ltr">lon           = f->lon         ; input<br>
          lon           =<a href="https://www.ncl.ucar.edu/Document/Functions/Built-in/where.shtml" target="_blank"> <b>where</b></a>(lon.lt.0, lon+360,
          lon)   ; lon => 0-to-360<br>
        </div>
        <div dir="ltr"><br>
        </div>
        <div>D<br>
        </div>
        <div dir="ltr"><br>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr">On Sat, Jan 12, 2019 at 12:01 AM Sam McClatchie
          <<a href="mailto:smcclatchie@fishocean.info" target="_blank">smcclatchie@fishocean.info</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div bgcolor="#FFFFFF"> Colleagues<br>
            <br>
            I have a new question that is related to my original
            question. Initially, I wanted to subset the large Global
            Fishing Watch dataset into regional datasets, and then plot
            the unstructured station data as fishing hours colored by
            their magnitude. Rick pointed me to the gc_inout function,
            and Dennis wrote some code with nested loops to do the
            subsetting and plotting at the same time.<br>
            <br>
            This was extremely helpful, but the loops were exceedingly
            slow because there are over 250,000 points per region, so I
            sped up the plots by doing the subsetting with a separate
            script before doing the plotting. I also figured out how to
            use the new cmocean colour tables. The data, code and figure
            produced are here:
            <a class="m_2090230600965030089gmail-m_-2611889024136365999gmail-m_8218959853096267226moz-txt-link-rfc2396E" href="https://my.pcloud.com/publink/show?code=kZsanC7ZlKPCnfV5wnLFWm4C2yCww4mtUIYV" target="_blank"><https://my.pcloud.com/publink/show?code=kZsanC7ZlKPCnfV5wnLFWm4C2yCww4mtUIYV></a>.<br>
            <br>
            My new question is how to subset the data across the
            dateline (in the New Zealand plot) when the longitude data
            run from -180:180? As you can see from the plot, my plotted
            fishing hours data stops at the dateline.<br>
            <br>
            To conveniently subset beyond 180 degrees, I tried this to
            convert lon to 0:360, but I'm getting a variable unassigned
            error for lon:<br>
            <br>
                            ; test
            ************************************************<br>
                            lon(ind(lon.lt.0)) = -lon(ind(lon.lt.0)) +
            180 <br>
                            print("%%%%%%%%%%%%%%%%%%%%%%%%")  <br>
                            printVarSummary(lon)<br>
                            print("%%%%%%%%%%%%%%%%%%%%%%%%")  <br>
                            ; end test
            **********************************************<br>
            <br>
            Using the reassignment operator (:=) does not fix the
            problem.<br>
            <br>
            Any hints would be most gratefully received.<br>
            <br>
            Best fishes<br>
            Sam<br>
            <div class="m_2090230600965030089gmail-m_-2611889024136365999gmail-m_8218959853096267226moz-signature">-- <br>
              Sam McClatchie (fisheries oceanographer)<br>
              & Elena Turin (accounting & auditing)<br>
              FishOcean Enterprises<br>
              38 Upland Rd, Huia, Auckland 0604, New Zealand<br>
              cell: 027 752 8495<br>
              <span style="text-decoration:underline"><a href="http://www.fishocean.info" target="_blank">Internet</a></span><br></div></div></blockquote></div></blockquote>
  </div>

</blockquote></div></div>