6/27/89 - J.R. - \codas3\edit\updscan.c 6/28/89 - J.R. - \codas3\util\llgrid.cnt - J.R. - \codas3\adcpsect\adcpsect.c & adcpsect.cnt 6/29/89 - H.Z. - \codas3\adcp\loadping.c - J.R. - \codas3\include\dbext.h - J.R. - \codas3\lib\db_*.lib 7/19/89 - J.R. - \codas3\source\db3.c - J.R. - \codas3\lib\db_*.lib - J.R. - \codas3\util\showdb.exe 7/24/89 - J.R. - \codas3\source\db4.c - J.R. - \codas3\lib\db_*.lib - J.R. - \codas3\util\showdb.exe 7/26/89 - H.Z. - \codas3\adcp\loadping & scanping J.R. - \codas3\source\db3.c & db5.c J.R. - \codas3\lib\db_*.lib 7/28/89 - H.Z. - \codas3\adcp\loadping & scanping documentation 8/03/89 - J.R. - \codas3\doc\oceandat.def - fourth char in units reinserted 8/08/89 - H.Z. - \codas3\profstat\profstat.c 8/15/89 - J.R. - \codas3\source\db1.c & db0.c - fixed bug in DBSRCH by time - \codas3\lib\db_*.lib - rebuilt because of above fix - \codas3\util\showdb.exe \ recompiled to use updated DB_S.LIB - \codas3\demo\dbtest.exe / 8/16/89 - J.R. - recompiled all .exe files that used DBSRCH by time: \codas3\adcpsect\adcpsect.exe \codas3\edit\badbin.exe, flag.exe, logscan.exe, set_top.exe, updscan.exe \codas3\nav\nav2dir.exe & putnav.exe \codas3\profstat\profstat.exe \codas3\util\delblk.exe, llgrid.exe, lprof.exe - J.R. - rebuilt LIB\USE_DB_*.LIB to include IOSERV\OPTION.OBJ and IOSERV\ERRCHK.OBJ because USE_DB\DB_CNF.C requires set_long_bit in OPTION and OPTION requires check_error in ERRCHK 8/24/89 - H.Z. - \codas3\adcp\loadping.c, scanping.c, pingsub.c & pingsub.h. 8/25/89 - J.R. - \codas3\nav\smoothr.h, optpos.c, smoothr.c, smoothr.exe, ref2mat.exe, sm2mat.exe: copied over recent changes made in codas2 version--see \codas3\nav\nav.upd for details 8/28/89 - H.Z. - \codas3\adcp\loadmw3.c (added to this subdirectory). 8/30/89 - J.R. - \codas3\edit\dbedit.doc (inserted note to user re UPDSCAN.EXE) 8/31/89 - J.R. - reorganized subdirectories such that all subdirectories containing programs specific to ADCP data processing (ADCPSECT, nav, DEMO, EDIT) are now subdirectories under ADCP. The original set of ADCP programs (SCANPING, LOADPING) were placed in an ADCP subdirectory called SCANLOAD. 9/1/89 - H.Z. - \codas3\adcp\nav\refabs.c (fixed some bugs) 9/1/89 - H.Z. - \codas3\adcp\nav\callrefp.m & refplot.m. 9/05/89 - J.R. - recompiled all .EXE files in the ADCP subdirectory to make sure that all header files and object modules are found under the new setup. 9/06/89 - H.Z. - \codas3\adcp\nav\smoothr.c & optpos.c (updated) - lon_180.c is created in subdirectory \codas3\adcp\nav. 9/07/89 - J.R. - \codas3\adcp\edit\*.M modified 9/08/89 - J.R. - \codas3\adcp\adcpsect\adcpsect.* - converted all control file \codas3\adcp\edit\set_top.* parameter keywords to one- \codas3\adcp\nav\nav2dir.* word equivalents by using \codas3\profstat\profstat.* the underscore character \codas3\util\llgrid.* - J.R. - renamed all update.doc files to .upd to avoid confusion when copying 9/12/89 - J.R. - \codas3\adcp\edit\badbin.c fixed, badbin.exe recompiled 9/19/89 - J.R. - \codas3\matlab\savematx.c enhanced \codas3\include\matfile.h \codas3\lib\matlab_*.lib rebuilt 9/20/89 - J.R. - \codas3\include\vector\refcalc.c \codas3\lib\vector_*.lib rebuilt 9/21/89 - J.R. - \codas3\matlab\savematc.c: added new function tonan_f \codas3\include\matfile.h \codas3\lib\matlab_*.lib rebuilt 9/22/89 - H.Z. - \codas3\profstat add: STN_UDW.M & STNUDWPL.M 9/22/89 - J.R. - \codas3\source: db1, db5, db7 \codas3\lib: db_*.lib rebuilt \codas3\adcp\edit: badbin, getmat, *.M, dbedit.doc 9/26/89 - J.R. - \codas3\doc\codas3.doc - fixed function declarations to use C style, not only VAX/VMS FORTRAN - added .EXE files for OCEAN subroutines to \codas3 9/26/89 - E.F. - \codas3\adcp\scanload: changed comments in codas3.def 9/28/89 - J.R. - renamed subdirectory \codas3\adcp\navref to \codas3\adcp\nav - \codas3\edit\rotate.c - old version rotated bt.u & bt.v even when they were BADFLOATs 9/29/89 - J.R. - \codas3\util\lprof.* - put underscore in control file 10/12/89- J.R. - \codas3\edit - added new batch file & program 10/17/89- J.R. - \codas3\edit - added pass 1 to UPDSCAN.C 10/22/89- J.R. - \codas3\matlab\savematx.c - fixed bug introduced in latest modification (affected text type only) - \codas3\lib\matfil_*.lib rebuilt didn't need to recompile programs which use savemat() because last recompilation used old (correct) matfil_*.lib (only getmat.c got recompiled but this did not save any text types) 11/03/89- J.R. - the following files were modified to remove the rescaling of bottom track velocities to m/s since this was already done during database loading for version 3: \codas3\adcp\adcpsect\shipref.c => adcpsect.exe recompiled \codas3\adcp\nav\list_bt.c => list_bt.exe recompiled \codas3\adcp\demo\adcpdb\codas3.def => units respecified - created util subdirectory under \codas3\adcp for utility programs used with ADCP databases: set_bit.exe, bt2tobt3.exe H.Z. - \codas3\adcp\scanload\scanping.c enhanced to handle ascii- formatted user buffer 11/15/89- J.R. - \codas3\adcp\edit\flag.c modified 11/15/89- H.Z. - \codas3\adcp\nav\refplot.m modified 11/22/89- J.R. - \codas3\adcp\edit\flag.c & flag.cnt modified 12/05/89- J.R. - \codas3\source\db1.c fixed problem with match_formats() \codas3\lib\db_*.lib rebuilt \codas3\showdb.exe and mkblkdir.exe recompiled to link to rebuilt db_s.lib \codas3\ctd subdirectory added 12/14/89- J.R. - \codas3\adcp\edit\flag.c - fixed bug in error velocity algorithm that cause only large positive error velocities to be flagged - \codas3\adcp\edit\logscan.c - fixed bug introduced in converting to codas3 - case of tag 2 failed to add 1900 to end year causing no profiles to be added - \codas3\flag.exe and logscan.exe recompiled 12/19/89- J.R. - several programs in various subdirectories were modified to & later work on the SUN: use_db, matlab, include, vstat, adcp\edit, ... 12/21/89- J.R. - \codas3\adcp\edit\last_85.c enhanced to warn user if LAST_85 is being run before BOTMPAS3 or similar routine to set the last good bin field of ANCILLARY_2 12/26/89- J.R. - \codas3\profstat enhancements 01/04/90- J.R. - \codas3\util\lprof modified 01/18/90- J.R. - \codas3\grid\llgrid modified 01/26/90- H.Z. - \codas3\adcp\edit\depthcng.c modified 02/15/90- J.R. - started modifying programs that make up output file names (including CODAS3\SOURCE) and sample control files to use lowercase letters for file names to avoid problems with PC-NFS 02/22/90- H.Z. - \codas3\adcp\scanload\loadping.c modified 03/02/90- H.Z. - \codas3\adcp\util\lst_temp.c a new program 03/07/90- H.Z. - \codas3\adcp\edit\fix_temp.c a new program 3-08-1990 fb - added ARRDEP.EXE from the PRC5 cartridge to the executables in CODAS3. The source program should be added also (to the PROFSTAT directory), but I have not found it yet. This comment should be edited when the source code has been added. 03/02/90- H.Z. - \codas3\adcp\util\get_absv a new program 04/12/90- J.R. - \codas3\source\dbprint.c print_select() - fixed error in format string for printing complex values - DB_*.LIB rebuilt but shouldn't affect existing programs 05/14/90- J.R. - \codas3\util\showdb.c - fixed bug that can cause program to crash if user hits return only in response to database name prompt - \codas3\adcp\include\adcp.h - rearranged ANCILLARY_1 and ************ CONFIGURATION_1 structures to accommodate Sun4 architecture *** NOTE *** - \codas3\adcp\*.exe programs recompiled to use new ADCP.H ************ DO NOT USE WITH DATABASES LOADED WITH OLD ADCP.H UNTIL THEY HAVE BEEN CONVERTED!!! USE THE convadcp program for this: convadcp 05/30/90 - JR - \codas3\adcp\util\lst_temp.c, \codas3\adcp\nav\list_bt.c & \codas3\grid\llgrid.c changed declaration of year_base from double to int as required by year_day() -- caused problems on the Sun but not on PC HZ - \codas3\adcp\scanload\loadping.c fixed bug introduced in 2/22/90 modification for new block at time gap 06/07/90 - JR - \codas3\include\dbext.h removed union in STRUCT_DEF_HDR_TYPE because of initialization problems with different compilers added error code for BLOCK_DIR_, PROFILE_DIR_, DATA_LIST_IS_EMPTY \codas3\source\db6.c added check for empty profile_dir in DBENDBLK() prior to alloc in order to avoid misleading INSUFFICIENT_MEMORY error on PC \codas3\util\mc1.c added check for 0 bytes of database variables prior to alloc in order to avoid misleading INSUFFICIENT_MEMORY error on PC 06/13/90 - JR - \codas3\source\db1.c unset db->*_loaded flag when corresponding db->* was freed; otherwise this could cause problems when DBPUTting a structure definition into a block file 06/18/90 - JR - \codas3\source\db2.c & db6.c fixed bug that causes block_hdr.block_nbytes not to correctly record the block file size \codas3\loadping.exe recompiled will need to recompile programs that update database in a manner that causes the profile directories to be rewritten 06/07/90 - JR - \codas3\util modified mkblkdir source files to properly handle variables supposedly present in the database but not actually there (old version would cause error message on PC, and incorrectly set the offset field in the data list/directory to some nonzero number on the Sun) 06/22/90 - JR - \codas3\util added fixnbyte program to correctly set the block_nbytes fields in the block header and block directory entries of databases loaded prior to 06/22/90 06/25/90 - JR - \codas3\util modified mkblkdir source files to be more efficient and avoid errors when writing across networked machines on the Sun 06/27/90 - JR - \codas3\adcp\include\userbuff.h added in place of nav.h uses 1281 & 1021 user buffer versions that align properly for SPARC \codas3\adcp\nav\ubprint updated to handle both 1281 and 1021 user buffer types without requiring 2 compilations fixed format strings to print shorts & longs with %hd, %ld, resp. ------------------------------------------------------------------------------- 07/10/90 - JR - \codas3\adcp\include\adcp.h - \codas3\adcp\include\convadcp.c - \codas3\adcp\scanload\loadping.c, loadmw3.c 07/11/90 - JR - \codas3\ioserv\main_cnt.c - *.exe: relinked to updated main_cnt.c - \codas3\adcp\include\convadcp.c 07/12/90 - JR - \codas3\adcp\scanload\loadping.c, pingsub.c \codas3\adcp\edit\fix_temp.c \codas3\vstat\histo.c - \codas3\source\db6.c \codas3\include\dbinc.h load*.exe: recompiled to use updated source - \codas3\ctd\load\load_ctd.c \codas3\ctd\demo\ctd_db\ctd.def 07/13/90 - JR - \codas3\adcp\nav\smoothr, ref2mat, edfix, sm2mat, optpos \codas3\ioserv\main_cnt.c 07/23/90 - JR - \codas3\adcp\scanload\pingcopy and ping_ren 07/27/90 - JR - \codas3\source 08/01/90 - JR - \codas3\util\mkblkdir 08/02/90 - JR - \codas3\source \codas3\util\mkblkdir 08/03/90 - HZ - \codas3\ioserv\param.c 08/06/90 - JR - \codas3\ocean 08/22/90 - HZ - \codas3\adcp\nav\edfix 08/27/90 - HZ - \codas3\adcp\nav\ref2mat & sm2mat 08/29/90 - JR - \codas3\adcp\nav\ubprint 08/30/90 - JR - \codas3\adcp\nav\ubprint & ubprint.cnt 08/31/90 - JR - \codas3\adcp\util\convadcp - EF - \codas3\ocean\bvfreq, atg, & svan (rebuilt libraries & .exe but not other programs that use ocean libraries) 09/05/90 - JR - \codas3\vstat\histo.c - \codas3\lib\vstat_?.lib 09/06/90 - JR - \codas3\util\showdb 09/10/90 - JR - \codas3\adcp\util\convadcp 09/15/90 - EF - \codas3\adcp\nav\ubprint 10/02/90 - JR - \codas3\adcp\edit\rotate 11/05/90 - JR - adcpsect, profstat, smoothr: recompiled to use updated ocean library (see 8/31/90 entry) - cal programs added: timslip, refabsbt, arrdep - scanping: now handles new 1320-type user buffer ------------------------- Major revision ------------------------------ JR - \codas3\adcp\* introduced PROFILE_FLAGS variable into ADCP databases for use during editing and access - \codas3\source\* reorganized code according to function (access mode) and into shorter modules in order to minimize program size - \codas3\adcp\edit\rotate changed to get args from control file instead of command line 12/21/90 - JR - codas3/adcp/adcpsect/adcpsect: bug fix applying to control files with ctd option 05/02/91 - JR - codas3/ioserv/new_ext.c: changed algorithm for stripping extension to properly handle '.' that occurs as part of pathname - adcpsect, profstat: relinked to updated ioserv.a 05/14/91 - JR - codas3/adcp/scanload/loadping, scanping: revised to perform conversion of user buffer only when needed (old version of loadping on non-PC exited with "ERROR: Undefined structure = USER_BUFFER" from function convert_struct() even if USER_BUFFER was declared to be of type CHAR/TEXT) In addition, loadping can readily convert any type of USER_BUFFER (be it array of floats, etc.). Previous version recognized only STRUCT types. 06/04/91 - JR - codas3/adcp/cal/rotate: fixed bug that occurs when using the DAY_RANGE option in the rotate control file: check for "within range" did not work properly--returning false immediately and not performing any rotation on the desired range. 06/21/91 - JR - codas3/adcp/scanload/loadping: fixed bug that caused correction to ship's last heading (in ancillary_2) based on heading offset to be added instead of subtracted: will need a utility program to correct those databases for which heading offset (in configuration_1 structure) is nonzero. 06/24/91 - WZ - codas3/adcp/edit/fix_hdg: new program to adjust ANCILLARY_2.last_heading by a constant offset (use to correct loadping bug 06/21/91 also) loadping: now checks for time gap each time a profile is read; old version failed to start new block if large time gap within one header. 07/24/91 - WZ - codas3/adcp/demo/stick/runstick.m, tdvec.m, intfit.m: new Matlab M-files to generate plots for harmonic analysis of velocity, diurnal and semidiurnal tides, etc. - codas3/grid/timegrid: new program to generate time grid for use with adcpsect control file when generating data for above 'stick' plots 08/05/91 - EF - codas3/adcp/nav/ubprint: GPS summary now displays the fix time instead of the profile time 08/19/91 - JR - codas3/adcp/cal/rotate: new option unrotate! to restore velocities back to pre-rotation values 08/22/91 - JR - codas3/adcp/cal/rotnav: new program to rotate reference layer velocities in an adcpsect .nav file 08/23/91 - WZ - cal_hdg.m and fitphase.m: new Matlab M-files used to fit water track calibration estimates to heading data when doing heading-related calibration calculations - JR - codas3/adcp/demo/*: now uses MW9103 ping files with 1320 user buffer - codas3/vecplot: new subdirectory now includes the vector plotting program 'vector'. Program has been translated to C and control file modified for greater flexibility. - renamed 'adcp' batch file for setting up adcp processing tree to 'adcptree' - codas3/cntfiles: new subdirectory now contains all the program control files used with various programs in codas3 91/09/05 - JR - codas3/adcp/ping2mat/ping2mat.c modified to remove restriction on no. of profiles that could be retrieved at a time (because of unsigned int arg to calloc()) 91/09/05 - JR - codas3/adcp/scanload/scanping: modified to print difference between PC clock and GPS time (if available) in the log file 91/09/09 - JR - modified for portability to HP Unix system based on Rich Signell's log file added HP_UNIX_C COMPILER option (Note: HP can use SUN3_COMPATIBLE_HOST environment; also seems to be an ANSI-compatible C compiler) 91/09/13 - JR - loadping.c: Fixed incorrect initialization of conversion factor in assign_part_anci() that caused ancil2.std_pitch, ancil2.std_roll, ancil2.std_heading, ancil1.mn_heading, ancil2.mn_pitch, & ancil2.mn_roll to be zeroed out; subtracted heading offset from ancil1.mn_heading 91/09/18 - JR - codas3/adcp/util/delblk: Bug fix: Old version resulted in CODAS error when deleting a range of profiles at the very end of the database, after trying to DBMOVE when there were no more profiles. Consolidated options to just 4 (instead of 6). 91/09/20 - JR - codas3/util/showdb, codas3/dbsource/dbshow.c: Made more flexible to accept either the variable name or numeric code in response to the GET DATA (16) option. 91/09/23 - JR - codas3/include/dbext.h, etc.: Extended FILE_NAME_TYPE to 80 characters (instead of 40). 91/09/24 - JR - adcpsect, rotate: Modified to use ancillary 1 mean heading for ship heading if available (for databases loaded after 9/13/91 correction to loadping--see above); otherwise use ancillary 2 last heading as before 91/09/25 - JR - showdb: Modified search-by-time option: user can now just type year-1900, and hours-minutes-seconds can be left out to default to 0 - lst_hdg: Added mean_heading column to output file (when available) 91/12/05 - JR - rotate: Added time trend rotation--see adcp/cal/adcp_cal.upd for details 92/02/27 - JR - codas3/adcp/demo/ping/*.m WZ Fixed scaling error that yielded incorrect absolute reference layer velocities; modified smoothing algorithm (simple con- volution with user-selected window size and no. of iterations); added new M-file uvd.m that plots u & v at user-specified depths vs. longitude or latitude 92/03/16 - JR - vector: WZ now allows multiple input vector files using new option "vecfiles:" in control file 92/06/18 - JR - ping2mat: fixed bug that occurs when using the 'E' time range that cause no profiles to be found within the time range - loadrun.m, uvd: modified to plot absolute (not relative) velocities vs. depth 92/07/23 - JR - load_ctd: Modified NODC section of code that originally added nvalues = no. of lines read from ASCII file; if there were missing values at the surface, then the profile would have gotten cut prematurely by as many bins. 07/28/92 - FB - adcpsect: Added option SIGMA_T to CTD module of adcpsect 92/08/14 - JR - rotate.c: Fixed bug in heading-related rotation that failed to convert ship heading from degrees to radians prior to applying sine/cosine, resulting in miscalculation of the transducer misalignment angle. This bug was introduced in the 12/05/91 modification. To fix databases affected by this bug, run the rotate program with the unrotate! option, and then use the corrected rotate program to redo the rotation. 92/09/28 - JR - scanping: Added profile time to ASCII user buffer output. 92/10/26 - JR - scanping & ubprint: Added support for 2240-type & 720-type user buffer output. 92/11/28 - JR - adcp/edit/get.m: Modified to properly handle 3-digit block numbers (missing a space in getmat command line) 93/01/14 - JR - fix_temp: Modified to allow user to supply correction parameters in a text file of file times and values, one line per database profile within the specified time range. Control file converted to options instead of parameters. 93/01/21 - JR - unbadbin: New program that can undo the effects of badbin on a database. It works just like badbin (same command line & input file syntax). Note that it will not work for databases where PROFILE_FLAGS is not loaded because in those cases, the effects of badbin are not undoable (the original velocity values are replaced by BADSHORTs). 93/02/01 - JR - vector: Added new option arrowhead_factor to control size of arrowhead. Made arraysize limits smaller for PC environment to avoid stack overflow errors (affects number of vector input files "vecfiles" and max. no. of vectors allowed when cruise track option is used). 93/02 - EF - vector: Added facility to do several vector plots within one control file. llgrid: New option "skip_to" adcpsect: Provided more precision in contour file output. getmat: Slight modification to work with LADCP data. ioserv.h, ioserv.c: New function skip_to(); time_io.c: get_time_range() returns 0 if other than time range is found 93/04/19 - EF - vector/deriv.c: function deriv1 was changed to check for zero in the denominator. 93/06/16 - JR - dbsource/io_nc.c: changed decl. or c from char to int in strip_comments() and get_quotation()--problems with porting to iris may stem from this. 93/08/12 - JR - ping2mat.c modified to also retrieve error velocity (E) if available and requested 93/09/01 - JR - adcpsect increased ndepth constraint to 128 so it would work for cruises that have small bin length, many bins 93/10/12 - JR - mkblkdir new control file option DESTINATION allows conversion to format other than HOST_ENVIRONMENT need 'end' in control file prior to listing BLOCK_FILEs 93/10/27 - JR - adcp/demo redone with newer data and using new routines; see adcp/demo/process.doc - edit/*.m redone for Matlab 4, with expansions; plots now show flagged profiles/bins; user can perform editing directly from plots, rather than manually edit external text file 93/10/29 - JR - fix_temp added rescale of bottom track velocity 93/11/19 - JR - runstick.m and support routines: Matlab 4 version redone to speed up PostScript file generation 93/11/30 - JR - vstat/unistat.c/calculate_unistat(): added else block that would set mean and variance to BADFLOAT if number of points in array is zero 93/12/10 - JR - init.m fixed for loop so Matlab won't give error when there are instances of LGB < NBINS (post-editing plots) 94/01/03 - JR - loadping: added second check for last_heading to be within 0-360 range and check for mn_heading to be within 0-360 in readping.c; original version can still yield negative heading after the heading offset has been applied. 94/01/21 - JR - pos_to_m.c, m_to_pos.c, m_to_lat.m and lat_to_m.m: corrected the coefficient in the third term of the constant: m = 111132.09 - 566.05 * cos(2*rlat) + 1.2 * cos(4*rlat) Previous version had 6*rlat instead of 4*rlat at the end. Practical effect of the error is negligible. (Thanks to Dan Dougherty of PMEL for pointing this out.) 94/02/03 - JR - adcpsect: fixed bug when using profile flags to flag bad bins: the number of profile flags retrieved was one bin less than needed, so this last bin was not getting flagged; would only come to play when all other editing criteria used (access_variables.last_good_bin, percent good, etc.) bring the last good bin up to a bin for which the profile flag happens to be set. - loadping: fixed bug in skip_profile_range option that can cause the specified range of profiles to be skipped not only for the specified header but for subsequent headers/ping files. This had to do with failure to reset the variable skip_this_prf everytime a new header was encountered. 02/10/94 - JR - fixed problem that appears when using the ctd option AND some CTD stations are shallower than the ADCP: this would cause a lot of ensembles to entirely drop out in the output 03/07/94 - EF - lat_to_m.m: now allows array input, not just vector, as long as alat and dlat args have the same shape 04/15/94 - JR - prtstruc.c: relocated carriage return printing so structures within structures always have their header lines printed on a new line 04/22/94 - JR - init.m: changed line 93 to IBAD_AMP = flagamp(AMP .* BADACC, AMP_THRESHOLD); so that bottom editing already incorporated into the database will not show again in subsequent editing sessions (i.e., the '*' marks won't show, and if PLOTBAD = 0, the profiles will be truncated after the ACCESS_VARIABLES.last_good_bin). 06/14/94 - JR - load_ctd fixed WHOI & WOCE code blocks to correctly calculate no. of values read based on pressure value rather than number of lines in input file; the latter will be misleading in the case where the file may be missing some data for particular pressure levels. (The NODC code block already had this correction from an earlier time.) 06/20/94 - JR - mkblkdir: made producer definition file optional; user can either use option PRD_NAME to specify the producer definition file or the following set of options to specify the parameters required from that file: DATASET_ID, PRODUCER_ID and BLOCK_DIR_TYPE 06/21/94 - JR - makelib: modified to handle use_adcp library and main_cnt compilation also - codas3/readme: new doc file for installation on various platforms 06/22/94 - JR - loadping: fixed condition for starting a new block file so program will not call DBENDBLK if the current block file is still empty; otherwise program crashes when several conditions occur simultaneously in conjunction with the loadping.cnt parameter specifications to make loadping want to start a new block file. 06/28/94 - JR - fix_hdg: fixed bug due to missing initialization of n_ancil1 & n_ancil2 prior to call to dbget; this can cause program to retrieve only part of the structures and store corrupted versions on the first iteration 07/20/94 - JR - ref2mat, sm2mat, refplot.m: fixed problem that arises with Matlab version 4.2: the 2 Matfile-saving routines were still using row-oriented storage which Matlab 4 no longer supports. They were changed to store the array columnwise, which in turn required a transpose statement after loading in refplot.m. - savematc.c: changed to print error message and exit if start_mat_array() function is called to store arrays row-wise. This is for compatibility with Matlab version 4. 07/23/94 - EF - vector: added options "first_subplot" and last_subplot" which allows multiple vector plots on a single page. fixed longitude handling: negative longitudes are no longer automatically increased by 360. Instead, max lon is increased by 360 only if it is less than min lon; then only longitudes < min lon are increased by 360 and longitudes > max lon are decreased by 360 08/01/94 - JR - vector: added code to correctly calculate the bounding box when there are multiple plots per page; also to correctly count the number of pages 08/02/94 - JR - chtime: added code to set TIME_CORRECTED bit (rightmost) in the data processing mask 08/15/94 - PC - adcpsect: added ascii: output option, which yields an ASCII file .sub with columns time (decimal days), lon, lat, and pairs of U and V for each depth layer in the user-specified grid, one line for each time range in the list. Bad velocity values are encoded as 99999 (i.e., where data are not available or are insufficient = less than minimum_percent specification). Missing positions are encoded as 1E38. JR - edit/*.m: fixed plotnav.m so script won't fail when lon/lat data are totally missing; commented out IKEY = 1 from l.m and r.m so won't automatically set key 94/08/29 - SB - vector: fixed map-drawing so land outlines will appear even if user uses -180 to 180 longitude convention in control file; old bug still exists such that trying to draw a map that crosses 0 deg longitude will have jumps--this needs to be fixed in the input map file. changed option "arrowhead_factor" to "arrowhead_scale", so that length of arrowhead is now specified in cm/s per inch units, not as as scaling factor. The old default is equivalent to 8 cm/s. The new default is 10 cm/s. 94/09/01 - JR - loadping: added reinitialization of prf_skip every time a new header is encountered. Otherwise, specifying a single profile to be skipped under one header will cause the program to ignore another skip instruction for the same profile number under a subsequent header. Thanks to Matthew Trunnell at UCSD for pointing this out. 94/11/17 - SB - vector: major revisions to add new features, including mercator projection, labels on plots, plot array, more user control on legend, etc. see codas3/vecplot/vector.doc for details 94/11/17 - SS - scanping, loadping, ubprint: added support for new user buffer type 1920 94/11/25 - SB - vector: added option for changing title font/size 94/12/01 - JR - mkblkdir: eliminated PRODUCER_ID option from control file--this information is not required to create a new block directory file; made PRD_NAME, DATASET_ID and BLOCK_DIR_TYPE purely optional by assigning defaults. 94/12/07 - PC - adcpsect.c: added stats on mean transducer temperature and ship velocity under ascii: output option 94/12/17 - EF - refplot.m: delayed axis call till after refabs output has been plotted; otherwise results in incorrect time axes for lat and lon plots when only refabs output was being plotted. 95/01/05 - EF - ashrot.m and attplot.m: new routines for plotting Ashtech attitude data and generating the gyro-correction file from the Ashtech attitude data 95/01/13 - EF - lst_temp: added Matlab file output with same information as ASCII file (mean & last temp, soundspeed, decimal day) plus longitude and latitude. 95/02/03 - JR - mc0.c and mc0.h: moved the #define statements (AS_IS, etc.) from mc0.c to mc0.h where it should belong (in conjunction with letting the load transect program use the convert_array_* and copy_byte routines). 95/02/07 - PC - setpmask: new program used for setting the data processing mask in a CODAS ADCP database; see also the "new" documentation file codas3/adcp/doc/dpmask.doc that describes the meaning of each bit setting. This program supercedes the old utility set_bit. 95/02/15 - JR - mc0.c: modified copy_byte to allocate temporary buffer in case dest and src args are the same; this makes it possible to call the convert_array_* routines to perform in-place byte-swapping. 95/02/17 - PC - chprodid: new program for modifying the PRODUCER_ID in a CODAS database; during creation, this field is initialized from the producer definition file and may have not been properly set--hence this utility program. Sample control file is codas3/cntfiles/chprodid.cnt. 95/04/18 - JR - vector: map-drawing routines fixed to allow lon_range to be specified as any subset between -180 and 720 degrees; however, the subset must cover no more than 360 degrees. Fixed some of the bad entries in the world.map file. Note: the "old" version (as of last distribution 8/94) has been renamed vector.old in the bin directory for users who need to regenerate vector plots from old control files. 95/04/30 - EF - refabs and refabsbt Fixed initialization bug found by Erik Gottlieb in refabsbt, which caused the first refabsbt (and probably first refabs, though no example was found) velocity values (second line in refabsbt output) to be incorrect. 95/05/04 - JR - smoothr: fixed problem introduced from the 11/93 revision of calculate_unistat (to set mean/variance to BADFLOAT if no. of points == 0): when a no-fix segment occurs, the smoothr output shows extremely large values for positions (near BADFLOAT), instead of the usual interpolated positions, because the BADFLOAT fix mean was being added to the initial segment position. The occurrence of this problem is obvious by inspection of the *.sm file and later, when extracting data makes evident the silent failure of putnav to set the database positions beyond the start of the no-fix segment with bad positions. - JR - matlab/matlab4/list.m added 2nd condition to line: ibot = find(abs(BOTTOM) < LGB' & abs(BOTTOM) < NBINS); to fix a problem ('Index exceeds matrix dimensions') that occurs when user sets DEFAULT_NBINS to less than the configuration number of bins in setup.m 95/05/16 - JR - extract: reorganized code to accommodate recent changes in the vector program, which shared some routines with the extract program - vector: fixed a problem in the axis tick labelling due to roundoff errors when step size is not integer-valued. 95/05/30 - EF - arrdep.c: Increased NRMAX from 21 to 1001 and added error checking to prevent n_refs from exceeding this and causing a segmentation fault. 95/05/30 - JR - vector: Made arrowhead width increase proportionately with the linewidth. 95/06/02 - EF/JF - attplot.m Fixed bug (failure to plot if any variable on a page was all zero); changed index selection criterion so that all columns will be plotted for any *n* variable. 95/06/12 - EF - nmea_gps: Added support for the Trimble 10X LGGGA message; added the ability to extract fixes with times immediately after the times listed in an external file such as a .nav file. 95/06/21 - YX,EF - getln_nc.c: Fixed bug, so that now getline_nc always discards characters beyond n-1 in the input line. Previously it would choke on comment lines exceeding this length. 95/06/21 - EF - nmea_gps: Bug fix and cleanup, so that too-short message lines are handled properly. Previously, a short message line acted like an EOF. 95/06/21 - EF - getmat: Fixed bug in the checking of the command line, that could cause a segmentation fault. 95/07/03 - EF - scanping.c: Added beam statistics summary for each pingdata file. 95/07/11 - EF - adcp/demo: Added newday.prl Perl script for automated processing of "clean" datasets with Ashtech data recorded by ue4 user exit program. adcp/demo/nav: Added callrefp.m__, a template used by newday.prl. adcp/demo/cal/rotate/ashrot.m: Modified to work better with newday.prl. bin/sun4/adcptree: Modified to copy demo/*.prl and demo/nav/*.m__, so that newday.prl will be present and will find the files it needs. 95/08/23 - EF - readping.c (affects loadping): moved initialization of nprof_in_hdr from get_hdr_block to header_check. This fixes a bug in the profile skipping function of loadping. See adcp/scanload/scanload.upd. 95/09/07 - EF - misc.h: added prototype and declaration for stricmp(). 95/09/07 - EF - adcp/demo/scan/cleanscn replaced the old version with a modification by Shuhui Chen, to avoid loss of precision in printing the times. 95/09/09 - EF - slight changes for compilation on an HP9000 series 300 (ren.ucsd.edu): use_adcp/readping.c: changed u_int to u_i because that compiler has a strange bug such that "USHORT u_int" and "USHORT uint" both generate errors like "more than one type in declaration", but "USHORT u_i" does not. lst_hdg.c, lst_alpha.c: removed unnecessary #includes for string.h and math.h; they are handled by geninc.h. setpmask.c: changed to use geninc.h. misc.c, misc.h: this compiler has toupper but not stricmp, so I changed the conditional compilation instructions to reflect that; but this may not be right for the next HP compiler. load_bot.csh: added "-lm" to "cc" line; math library is needed. 95/09/14 - JF - modified newday.prl: angle from calibration runs is now applied to the database distinct from the ashtech-gyro angles, so that a record of this angle rotation appears in the rotate.log file. There is still an option for a dh_offset value within the parameter input for ashrot.m. 95/09/29 - YX, EF - replaced links to the NODC code files, ship.cde, inst.cde, with the files themselves; modified pack_codas script to follow links when getting the bin directory, so that the sgi version will have adcptree in its bin directory. Note, however, that the NODC codes are obsolete and no longer used by NODC, so the PRODUCER_ID field is really open now to any reasonable format. We probably need to think up a new standard, but this is low priority. The field does not seem to be crucial to anything anyone does. 95/10/08 - EF - data_id.h, data_lst.h: added CORRELATION_MAG for support of broadband systems (like the LADCP); recompiled profstat to recognize the new variable. 95/10/12 - EF - cruistr2.m, plottemp.m, cal_hdg2.m: All these scripts load ascii files that may have "%" comment lines in them; on UNIX systems, they are supposed to use a grep command to filter out the comment lines. They were using >! for forced redirection; this works on Suns but not on an old HP machine, or presumably on any machine for which ! brings up sh instead of csh. Hence I changed >! to > and put in some statements to delete the target file if it already exists. Note that the code for handling this machine-dependency is not uniform among the 3 functions, and is not perfect in any of them; this should be improved. Unfortunately, Matlab's C-like file reading functions are not quite flexible and general enough to make it easy. The best simple improvement would be to encapsulate the operation in a single m-file, so that any machine-dependent fixups would only have to be done in one place. **<>** 95/10/24 - EF - dbsource/, include/, util/: I copied over Julie's modifications to support the reading of block files with foreign number formats. maklibs, makbins: new scripts to automate complete recompilation; just run maklibs first, then makbins. 95/10/26 - EF - vector.c, vecsub.c: fixed a couple of bugs. 95/10/26 - EF - adcp/tran_nbp and adcp/tran_bbp: I added these directories for the NB and BB Processed Transect data loading programs, respectively. The former is by Julie Ranada; the latter is a modification of Julie's program by Dave Senciall's people. Neither has yet been inspected and used intensively, but they seem good enough to warrant inclusion in the standard CODAS distribution. 95/12/05 - EF - ubprint (ubwrite.c): Changed the time column in the ascii Ashtech "att" file to use the ADCP profile time, instead of the time of the first recorded fix. smoothr.c: commented out the lines that write ensemble times to the screen (excessive and useless output--just slows things down). 95/12/09 - EF - matlab/matlab4/to_(day,sec,date).m New vectorized versions; major bug fixed in to_date; new option added to to_date so that it can output either string or matrix forms. 95/12/22 - EF - adcp/demo/cal/rotate/ashrot.m Modified to produce a log file with a listing of the major interpolation time ranges, and parameters used by ashrot. 96/01/25 EF - profstat/profstat.c: Revised to call get_data_list_index in dbget_n.c instead of using the fixed list in include/data_lst.h. As a result, profstat can now access any named array. data_lst.h is now obsolete, so I deleted it. It was not used by anything other than profstat. 96/02/01 - EF - showdb (time_.c, dbshow.c): Modified get_ymdhms_time to accept "year decimal-day" as an alternative to Y M D H M S. 96/02/20 - EF - matlab/matlab4/to_date.m: Fixed bug that made it hang for some inputs. 96/03/19 - EF - adcp/adcpsect/shipref.c: changed p->nu to p->nu - 1 in two places, to fix a bug in the reference layer velocity calculation. The bug caused the reference layer to include one bin below the bottom of the good data range. For example, if access.last_good_bin was 4 and the reference layer was bins 5 to 20, the reference layer velocity would be output as the velocity in bin 5. 96/03/19 - EF - ubprint (ubwrite.c): fixed a bug that caused occasional 1-day errors in output fix times. 96/03/25 - EF - ioserv.h, dbext.h: changed NPATHMAX and sizeof(FILE_NAME_TYPE) from 80 to 160. This change will not take place fully until related changes are tracked down and made. In particular, where filenames are read from control files, the fscanf templates must be changed from "%79s" to "%159s". 96/04/01 - EK - adcp/demo/nav/corags.m: New script that corrects gps fixes from the antenna location to the transducer location. 96/04/01 - EF - adcp/tran_bbp/loadtran_bbp.c replaced sec_century_to_codas function with Dave Senciall's revised version, from his email of 3/26. transub_bb.c: fixed set_depth to use two arguments (also based on message by Dave S.). Found that it is already being called with both arguments. 96/04/13 - EF - adcp/tran_*/*.c,*.h During the last two weeks, various changes and improvements were made to the loadtnbp and loadtbbp programs. They are now compilable and runable on PCs as well as Suns. There is a new option for each filename: add_seconds, a parameter used for time correction. 96/04/19 - EF - profstat/profstat.c Modified so that it defaults to using bin number as the depth coordinate unless valid depths or pressures are found in the database for each bin in the range requested. This facilitates use of profstat to look at raw AGC, for example, which is stored in a single array for all bins, each beam. Hence the array is 4 times the length of the depth array. 96/05/14 - JF - adcp/demo/cal/rotate/ashrot.m Modified range_mask to handle case where first or last good_att_mask is 0, when looking for significant interpo- lation ranges to note in ashrot.log; also added an error message if the numbers of starts and ends are not the same, and writing out of mean and standard deviation of heading correction angles to the log file. 96/05/20 - EF - llgrid.c: Modified to print a warning about missing positions, but to ignore them when calculating the time ranges. 96/05/06 - EF - btcaluv.m: Major improvements to improve editing and ease of use. Replaced old copy in matlab/matlab4 with symbolic link to current copy in adcp/demo/cal/botmtrk. 96/06/24 - JF - recip.m: Added recip.m to demo/cal/watertrk. This watertrack method can be used for nearly reciprocal portions of the ship's track to derive estimates of the constant amplitude and phase corrections due to tranducer offset. 96/06/28 - EF - m_to_lat.m: Slight modification so that it works regardless of orientation of input vector. 96/08/05 - EF - cal/add_ref.c, nav/optpos.c, nav/smoothr.c The change to add_ref.c only in the output format specification, to increase the precision of the position data output by refabs. The advent of P-code and differential GPS makes this desirable, though not essential. Changes in optpos.c and smoothr.c are more extensive. They fix some bugs in the calculation of position that sometimes resulted in positions being off by 100 m or so. NOTE: particularly on long cruise tracks, and on tracks that are not purely zonal or meridional, I recommend using 4 or 5 iterations in smoothr, instead of the prior default of 3. smoothr.cnt, newday.prl: changed iterations and gap variables in accordance with the recommendation above, and with the characteristics of GPS data. 96/10/1: (XY) Merge JR's version and the standard version from /home/noio/programs/codas3. Also modified for cleaner compilation with an ANSI compiler as under SunOS5. In addition to the information in /home/noio/programs/codas3/codas3.upd, JR's version made some modification on the files in dbsource/*.c,include/dbext.h, dbinc.h, time_.h, use_db/time_io.c to support the hundredths seconds. This version has been tested using demo for ADCP test, and got the same result as from the /home/noio/programs/codas3. And for LADCP, it's tested using V661_01.000 data, and it gave the same result except it shows the .XX seconds. And also tested using hot58r_5.000 data, and it shows the .7 seconds time interval. 96/10/02 - EF - adcpedit: getmat.c: Added two command-line options: -r for raw amplitude output, and -t for specification of decimal-day time and interval instead of block-profile-nprofs. getmatra is obsolete and has been deleted. setflags.c: New program to set and clear profile flags and access_variables first_good_bin and last_good_bin. set_lgb.c: New program that replaces botmpas3 and last85, which will soon be deleted. dbupdate.c: Modified to work in concert with set_lgb and setflags. 97/05/25 - EF, JH, JF - general reworking; many changes. The present note is sketchy and incomplete. Sorry, but I am out of time. makefile system was completely reworked to improve ease of use, generality, dependencies. (It may still need more work; occasionally it does not seem to work quite right.) The method of keeping track of time to a 100th of a second was changed. This affects only the LADCP application, and even there, only data loaded using the 100ths option, which has not been around for long in any form anyway. Time reading and writing functions were improved for generality and to handle y2k gracefully. This set of changes is not yet complete. The big change from the user's standpoint is that most control files that require time ranges will now accept the word "all" in place of a time range. This will result in a 100-year time range, guaranteed to encompass everything in your ADCP database! Any program using a control file now has a new feature: anywhere in the control file you can put something of the form "@filename" (no quotes), and the contents of the named file will be interpolated. This is particularly useful for putting llgrid or timegrid time ranges in adcpsect control files, for example. Smoothr was changed to use dynamic memory allocation; unless I fouled it up, it will no longer fail on datasets with large numbers of gaps or bad profiles (except possibly on a PC, if you run out of heap memory.) (JH) Matlab functions were made version 5 compatible; to indicate this, they are now in matlab/matlab45 instead of matlab/matlab4. They are also still matlab4 compatible. Several functions such as adcpcal were changed to accept a filename in place of a matlab array. They then use the function "read_asc" to read the file, which may contain comments. The timslip output file is an example. (Read_asc.m is quite useful. Try it.) (JF) The demo was reworked and process.doc updated to reflect the changes to the editing programs noted in the previous update entry. PLEASE LOOK AT PROCESS.DOC. It contains new methods, new features, and new explanations of old ones. 97/12/15: (JF) The demo edit diary file, with annotations, was reworked using the default threshold settings in setup.m. It should now match what users who run through the demo steps see; changes in profstat resulted in slightly different threshold values, and thus editing flags. Process.doc was updated in the editing section to reflect the threshold values calculated on unedited profiles, using the current version of profstat. Lines to set up the matlab path to the directory for editing commands were added to data previewing program loadrun.m. 97/12/15: (EF) adcp/tran_bbp/loadtbbp.def: changed scale factor for DEPTH so that the resolution is 0.1 m and the range exceeds 3200 m. That should work fine for most cases. 98/01/19: (EF) adcp/tran_bbp/read_bbp.c: commented out a line that inserted a mysterious pad byte, which no longer seems to match Transect files as they are coming out now. The change is in the read_leader() function, and causes the number of pings per ensemble to come out right. matlabef/codas3: moved offset.m, plotnav.m, botmpas3.m, bottom.m to the edit subdirectory; and changed the calls to editglob.m into explicit "global" statements, as required by Matlab's parser. editglob.m is now not needed (except perhaps as a convenient list in one place of all the globals, although that is also in setup.m now.) codas3/adcp/demo/nav/setup.m: see above. 98/06/01: (EF) adcp/demo/nav/attplot.m: slight fix required for Matlab 5.2; also deleted attplot.m from adcp/tbbdemo because it is useful only for data recorded with DAS plus ue4.