Improvements for the Masking codes
current suggestions
- Try masking nested domains simultaneously to
avoid troubles like this.
- Consider having both Grids and PE_mask preserve
the coastline data file name into a global attribute. Then can grab
this information for the Matlab version.
- The netCDF variables ncseg & lcseg have
identical names to the similar maximal dimensions. These are often
confused (standard packages, i.e. getnc) with
"coordinate variables" (e.g. COARDS convention). This leads
to errors. Change the names.
- Currently the Matlab & FORTRAN versions produce a different
ordering for the islands. This is unacceptably unsystematic. To correct
this:
- Load the boundary indices in the FORTRAN version to mimic the
Matlab ordering. This will give the initial lists with
consistent ordering.
- Reorder the islands based on size. This is done for sequential
resetting of streamfunctions around islands. Use the exact same
sorting code for both versions. Measure size based on either
- Length of island coastlines
- Area (number of grid points) contained within island.
- Create an option to initialize masks based on whether a point
is inside GSHHS polygons.
- Test against N-pole, not S-pole. Otherwise every point is
inside Antarctica.
- When GRIDS recognizes cyclic topography,
PE_mask should produce masks with this feature.
- In the Matlab version,
- use the find function to get the starting points rather than looping
over all possible starting boundary points.
- Make sure to keep same ordering, PE_initial is paying
attention to it.
- display the coarse grid coastlines for nesting.
- Update the FORTRAN version to:
- have its own clean_mask function
- use no_digit to control the format width for
the printed flip point counter, currently limited to field
width of 2.
- Protect PE_mask against failing if no land is masked.
- Matlab version is protected
- check FORTRAN version
- Possible useful annotations to Matlab version:
- Write coastline number near coastlines. Improves ability
of user to control transport streamfunction
- writing mask to gname while writing mask
- XX% Sea as title when done
- Perhaps in clean_mask, should reflect near boundary
to boundary. This would ensure 2 active points masked along boundary.
- Rename this stuff HOPS_Mask?