NOTE:
Ferret v6.6 is being released concurrently with version 6.5. These only difference between these two versions is that v6.6 is linked with NetCDF-4 libraries and has some new syntax elements for writing netCDF-4 files. Ferret v6.5, like previous versions for many years, is linked with OPeNDAP libraries for netCDF and OPeNDAP dataset access. We are making this one last Ferret release with the OPeNDAP libraries because the NetCDF-4 library is currently between official releases. DAP support has moved from opendap.org, into Unidata's support for NetCDF. All future releases of Ferret will be linked with NetCDF-4.
The release notes for Ferret v6.6 are here.
Changes and Bug Fixes in V6.5:
NOTE: A serious bug has been found in this version of Ferret which affects computing the definite integral. Zonal integrals return results that are too small by a factor of pi/180 (0.01745). This bug first appeared in Ferret v6.42 and was fixed in version 6.67. Installations of LAS which run these versions of Ferret are unaffected by this bug.
1. Fixes are made to the xml-style output used by LAS. Ferret v6.5 or higher is required for LAS v7.1.
2. ASCII listings with TAB and COMMA formatting are changedso that they list the missing values, and include the value of themissing-value flag in the header. This makes these files appropriatefor use with other software.
3. Customizations for time axes: A time-axis style DMY is introduced, which adds a year label to the Month/Day style of time axis.
4. Fixes are made so that multi-decade time plots are drawn with no small tics by default. Previously this had to be done manually with PPLUS time axis settings.
5. A command-parsing bug is fixed, where an equals sign inside double quotes was misinterpreted. Now it is interpreted simply as a string.
6. A bug is fixed which allows the polymark.jnl script to correctly overlay polygons onto a non-GREGORIAN (e.g. NOLEAP, JULIAN) time axis.
8. A fix is made for evaluating numbers in grave-accent expressions where a small number of significant digits is requested.
9. When a color key is requested on a polygon plot, with particular levels and palette, but the data is all blank, the key was plotted without the colors. This is fixed.
The details:
1. Fixes are made to the xml-style output used by LAS. Ferret v6.5 is required for LAS v7.1. This is part of the machinery that allows for analysis of variables (averages, differences, and so forth.)
2. Previously the ASCII listings made with LIST/FORMAT=comma andLIST/FORMAT=tab replaced missing data with just a tab or comma. Thesefiles are generally intended for use with other software such as aspreadsheet. Now we list all of the data including missing values represented by the missing-data flag, and give the value ofthe bad-data flag in the file header, so that the software can handleit in whatever way it handles missing data.
yes? let a = {1,1,2,,1,,1,1} !This variable has the Ferret default missing-value -1.e+34
yes? let/bad=999 b = {4,4,4,999,4,4,4,999} ! This variable has 999 as its missing-value flag
yes? list/form=comma a,b
X: 0.5 to 8.5
Column 1: A is {1,1,2,,1,,1,1} BAD FLAG : -1.E+34
Column 2: B is {4,4,4,999,4,4,4,999} BAD FLAG : 999
A,B
1 / 1:1,4
2 / 2:1,4
3 / 3:2,4
4 / 4:-1.E+34,999
5 / 5:1,4
6 / 6:-1.E+34,4
7 / 7:1,4
8 / 8:1,999
3. Customizations for time axes: A time-axis style DMY is introduced, which adds a year label to the Month/Day style of time axis. When a time axis shows only months and days, and other labels are not on the plot, the year can be added automatically with this setting. A new symbol is introduced: TXTYPE_SETTING, set to YR, MON, DAY so that a script can be written to choose when to make the DMY setting
yes? use "http://ferret.pmel.noaa.gov/thredds/dodsC/data/PMEL/reynolds_sst_wk.nc"
yes? plot/nolab/x=180/y=0/t=1-jan-1988:15-mar-1988/set fsst
yes? IF ($TXTYPE_SETTING"0|MON>1|DAY>1|*>0") THEN PPL TXTYPE,MON,DMY
!-> IF 1 THEN PPL TXTYPE,MON,DMY
yes? ppl plot
yes? plot/nolab/x=180/y=0/t=1-jan-1988:15-aug-1988/set fsst
yes? IF ($TXTYPE_SETTING"0|MON>1|DAY>1|*>0") THEN PPL TXTYPE,MON,DMY
!-> IF 0 THEN PPL TXTYPE,MON,DMY
yes? ppl plot
4. No small tic marks are drawn by default on long time axes. Previously they were drawn but were far too densely packed. They had to be removed by hand with PPL commands. Try these examples:
yes? DEFINE AXIS/T="01-JAN-1860":"30-DEC-2300":5/EDGES/UNITS="Days" longtaxis
yes? LET tvar = 0*t[GT=longtaxis]
yes? ! Plot a variety of time axis lengths.
yes? PLOT TVAR[T=1-jan-1860:1-jan-1870]; pause
yes? PLOT TVAR[T=1-jan-1860:1-jan-1880]; pause
yes? ! New default: no small tics for multi-decade plots
yes? PLOT TVAR[T=1-jan-1860:1-jan-1890]; pause
yes? PLOT TVAR[T=1-jan-1860:1-jan-2000]; pause
yes? PLOT TVAR[T=1-jan-1860:1-jan-2060]; pause
yes? PLOT TVAR[T=1-jan-1860:1-jan-2160]; pause
yes? PLOT tvar; pause
yes? ! We can plot the tics even on a multi-decade axis by specifying PPL TICS.
yes? PLOT/SET tvar
yes? PPL TICS,0.1,0.25
yes? PPL PLOT
5. A command-parsing bug is fixed, where an equals sign insidedouble quotes was misinterpreted. Now it is interpreted correctly as astring. Previously these commands resulted in a syntax error:
yes? say `"=" EQ "-"`
!-> MESSAGE/CONTINUE 0
0
yes? DEFINE SYMBOL my_sym = `UPCASE("/lev=(0,30,2)")`
!-> DEFINE SYMBOL my_sym = /LEV=(0,30,2)
6. A bug is fixed which allows the polymark.jnl script to correctlyoverlay polygons onto a non-GREGORIAN (e.g. NOLEAP, JULIAN) time axis.
yes? define axis/t=1-jan-0002:1-jan-0010:1/cal=noleap/unit=year/edges tax
yes? let tval = t[gt=tax]
yes? plot tval ! plot a line
yes? let pos = {`tval[l=4]`,`tval[l=5]`}
yes? ! Here previously we got an error about mismatched calendars on time axes:
yes? go polymark "poly/ov/nolab/pal=red/line=1" pos pos " " circle .5
7. A fix is made for Linux 32-bit executable, for some regridding operations in time that involves a non-Gregorian time axis.
8. A fix is made for evaluating numbers in grave-accent expressions where a small number of significant digits is requested. Previously this returned **. For instance,
yes? say `99.99,p=1`
!-> MESSAGE/CONTINUE 100
100
9. When a color key is requested on a polygon plot, with particular levels and palette, but the data is all blank, the key should be plotted with the requested colors.
yes? ! Define some data; zpts all missing
yes? let xpts = {3,5,6,7,8,9,10,13,15,16,17,18,19,21,22}
yes? let ypts = {1,2,3,4,5,6, 7, 8, 9, 4, 5, 6, 7, 8, 9}
yes? let zpts = { , , , , , , , , , , , , , , }
yes? plot/vs/line xpts,ypts
yes? go polytube polygon/over/key/lev=(0,6,1) xpts,ypts,zpts