GPP change log: v1.00u 03/08/94 M. Buhl Original program created from a blending of other codes. v1.00u 03/13/94 M. Buhl Original version completed. v1.10u 03/13/94 Started adding help. v1.11u 03/14/94 M. Buhl Finished adding help and to change BREAKOUT to DIVIDE and modify the way it names the REQUEST files. Minor changes were made to GENSTATS to change "skew" to "skewness" for output. v1.20u 03/14/94 M. Buhl Add computation of fourier coefficients to AZIMAVER. v1.21u 03/15/94 M. Buhl Debugged the previous day's work. Fixed bug for cancelling CHOOSE after a previous file had been active. v1.22u 03/16/94 M. Buhl Added a line to output files indicating that there was no header in the input file (if so). v1.23u 03/17/94 M. Buhl Cleaned up a lot of stuff and to make it more modular so as not to repeat so much code. New routines include WR_HEAD, ASK_COL, and DISP_COL. v1.30u 03/18/94 M. Buhl Added an interpolation tool. v1.31u 03/23/94 M. Buhl Added cubic-spline interpolation. v2.00 03/27/94 M. Buhl Made it compatible with F77L-EM/32 and NDP FORTRAN. Added many new simple routines to make it more portable. v2.10 03/28/94 M. Buhl Replaced SPECFT with some routines from "Numerical Recipes". v2.11 03/29/94 M. Buhl Made reading in generic files a little friendlier. Created SHOWHEAD. Fixed the phase bug in AZIMAVER. v2.12 03/29/94 M. Buhl Fixed "dot" bug in DIVIDE. Print out header when asking for the azimuth column. v3.00 03/30/94 M. Buhl Made CHOOSE, READPRI (now READDATA), GENSTATS, DISSTATS, and WR_HEAD generic so they can be used for both primary and secondary files. Changed many names associated with primary data to have a "PRI_" prefix. Coded MERGE. v3.01 03/31/94 M. Buhl Redid the menus to make them context sensitive. Also, finished coding the MERGE routines. Redid CHOOSE, READDATA, GENSTATS, and WR_HEAD to make them specific to primary files. GPP now moves columns of data from the primary to the secondary arrays. Changed results writes to "G" format. v3.02 04/01/94 M. Buhl Made it so the Interpolation Tool can read Merge Tool files. Created a new PARS_FLT routine to read floating point numbers from a string. Improved error handling for READDATA and INTERP. Changed the Divide Tool so it appends the request number to the end of the root name instead of as an extension. Added the PATH_SEP and MAXFNLEN variables to the system include file. Added the CHK_ROOT routine to check the length of the root file name. Added the U and W topics to the Help Tool. Rewrote much of the helpfile. Changed DISSTATS and GENSTATS to use G format. Fixed some minor problems in the menus. Changed all "Cancelling" messages to mention the name of the tool instead of the routine. Moved this change log into its own file. v3.10 04/01/94 M. Buhl Added the Units Conversion Tool. Changed the Merge Menu so that the U and W options are not available until a merge has been done. Changed GET_COLS and DISP_COL so they also work with secondary arrays. Added the PACK function. v3.11 04/04/94 M. Buhl Fixed typo, added a call to FLUSHOUT in INTERP. Fixed a bug in the binary search in CUBIC_SP. Added an update for PRI_COLS in SEC2PRI. Changed SHOWHEAD so one can MORE the top of the file. Changed normalizing for SPECTRM (it now divides by the delta frequency). v3.20 04/05/94 M. Buhl Wrote the Binning Tool. Added conversions for kg to/from lbm to the Units Conversion Tool. v3.21 04/05/94 M. Buhl Added starting/leaving messages to the tools. Modified SETOPTS so it does all returns from one point. Moved CHOOSE and READDATA to choose.f and moved the calls to READDATA and GENSTATS from menus.f to CHOOSE. Beautified the # records read statement in READDATA. Added a FLUSHOUT after the "Opening xxx." statement in OLDSFILE. Changed unit UA to UI in choose.f, gpp.f, and system.inc. Added dummy lsqfit to Help Tool and menus and removed the "List Files" option. v3.30 04/05/94 M. Buhl Added decimation and averaging to the Filtering Tool. Added WR_BL, WR_ML, and WR_EL to the system routines. Moved WR_DOT to gpp.f. Modified all routines that wrote out a '&' for appending text to a line. Moved stats calculation to CALCSTAT from GENSTATS. Converted many calls from WR_NR to WR_BL. v3.31 04/05/94 M. Buhl Added a copyright notice on startup. v3.40 04/06/94 M. Buhl Added the Trim Tool. Enhanced the help file. Renamed PARS_INT to GET_INT and create a new PARS_INT that is similar to PARS_FLT. Fixed a bug in FLT2LSTR--it trimmed zeros to the left of the decimal. Added a new routine WR_BL1 that is the same as WR_BL, but it writes out a blank line before the "beginning of line" text. Modified most files to take advantage of the new routine. Eliminated some unneeded variable declarations from COMPSTAT, GENSTATS, SIMPMENU, and TOOLMENU. v4.00 04/11/94 M. Buhl Had to completely redo all screen I/O as the HP compiler does not support CARRAIGE_CONTROL='FORTRAN'. Added the WR_STR and WR_STR1 routines to handle screen I/O. Added some help to INTERP and made the entry of the min, max, and step fail proof. v4.00 04/12/94 M. Buhl Continued the previous day's work. Changed from using the term "power spectra" to "PSD". v4.10 04/12/94 M. Buhl Made it so that one has the option to choose window type for PSDs. Made changes to options.f and pwrspect.f to enable it. Modified the menus to say PSD instead of power spectra. Updated the help file. Made a minor change to GIVEHELP. Eliminated all executable statements from FLUSHOUT in sys_hp.f . Added the C routine "null_buf" to set the stdout buffer size to zero to get around the lack of FLUSH on the HP platform. It is called from OPEN_CON. v4.11 04/13/94 M. Buhl Fixed alignment of menu items in merge menu. Fixed informational mes- sages for the Binning Tool. v4.20 04/14/94 M. Buhl Fixed a string written to results file in the PSD tool. Started writing the Least Squares Fitting Tool. v4.21 04/20/94 M. Buhl Finished the Least Squares Fitting Tool. v4.22 04/25/94 M. Buhl Modified SPECTRUM to put a cosine taper on the data before generating a PSD. v4.22 04/26/94 M. Buhl Fixed the taper business by calculating the mean of the taper for removing the mean from the data. v4.30 04/28/94 M. Buhl Went back to SPECFT for the PSD tool. Modified the options stuff for PSD type and the linear detrending option. Modified makefile to add the dependency for options.inc for pwrspect. v4.30 04/29/94 M. Buhl Update the helpfile.txt for the new PSD Tool. v4.31 05/03/94 M. Buhl Finished (I hope) debugging the PSD Tool. Fixed a bug in the Merge Tool where the IND_COL was not getting set for GET_COLS. Made minor changes to the Options Tool. v4.40 05/06/94 M. Buhl Added the Limiting Tool part of the Filter Tool. v4.40 05/09/94 M. Buhl Continued work on the Limiting Tool. Added GET_FLT to be similar to GET_INT. Added the call to LIMIT to FILTER. Made a minor change to COMPSTAT. Modified the makefile to add the limit files. v4.40 05/10/94 M. Buhl Debugged the Limit Tool. Updated the help file for Folter and Least Squares. Modified TEST_DOT and WR_DOT so WR_DOT does the FLUSHOUT. v4.41 05/10/94 M. Buhl Set IND_COL to zero in UNITS. Added IND_COL to the calling list of GET_COLS so I wouldn't make this mistake any more. Modified all affected files. v4.42 05/11/94 M. Buhl Debugged the Limit Tool some more. Created a new routine GET_BLEN to get the block length and moved it to the beginning of LIMIT. Changed MRGMENU so you can't get secondary stats until you have data in the secondary array. Realigned the help for GET_COLS. Modified DISSTATS for secondary arrays to realign the skewness column. Changed the way dots are displayed in LIMIT. v4.43 05/18/94 M. Buhl Gave up on fixing R_P_RFTK in SPECFT. I decided to zero fill the PRI_DATA array to MAX_ROWS before calling SPECFT with MAX_ROWS instead of PRI_ROWS. This will eliminate the need to call the offensive routine unless someone changes MAX_ROWS to a number that doesn't factor to primes all <= 5. All code was removed from the routine and a warning message was put in to warn the user to change MAX_ROWS. Changed the Divide Tool to use a .rq extension to avoid conflict with the ADAMS .req files. Added a period to an informative statement in AZIMAVER. v4.44 05/18/94 M. Buhl Modified PARS_FLT, WR_BL, WR_ML, and WHICHCON to use local strings because NDP sucks. Modified GETOPTS so it didn't bomb on EOF. v4.45 05/19/94 M. Buhl Fixed column explaination for RF output files. Fixed bug in GETOPTS that let Band and Log PSDs be both true (bug found by A. Wright). Modified PSD Tool to add zeroes after taper instead of before. v4.46 05/26/94 M. Buhl Removed unused variables from pwrspect.f and limit.d. Created a BLOCK DATA module to initialize CRI_NUM which is in the LIM_CRI common block. Changed system name in sys_pcl.f to "pcl". Changed the options for listing files under DOS to /P/W/O/A:-D in sys_pcl.f and sys_pcn.f. Added the "H" option to the long version of the Tool Menu. v4.47 05/31/94 M. Buhl Fixed a bug in the Binning Tool for when the independent value was equal to the max ind. value. Fixed some typos in helpfile.txt. Modified MERGEMNU so the Filter Tool does not show up before there is data in the secondary array. Fixed a typo in SETOPTS. v4.47 06/01/94 M. Buhl Fixed a minor screen bug in UNITS. v4.47 06/21/94 M. Buhl Cleaned up the FORMAT statements in subroutine BINNING. v4.47 06/23/94 M. Buhl Fixed AZIMAVER so it doesn't assume the azimuth is in column 2. Fixed bug in merge.f where calls to the CMD_SHELL were missing the ERROR parameter. v4.47 06/29/94 M. Buhl Fixed screen output slightly for SEC2PRI. Dave Laino found a bug in the Merge Tool. It involved using the primary array index instead of the secondary array index when copying the labels for generic files. v4.48 06/30/94 M. Buhl Alan Wright found a bug in MERGMENU. If the user explicitly wrote the secondary data to a file, (s)he could not quit. The bug was fixed by setting QUIT to true if DID_WRI was true. Fixed the Rainflow Cycle- Counting Tool so that it eliminates selected columns that have constant data. v4.50 07/01/94 M. Buhl Modified READDATA for parsing YawDyn headers. Modified some IF statements and FORMATS in AZIMAVER, BINNING, DISP_COL, HISTGRAM, INTERP, LSQFIT, MERGE, and PWRSPECT. Modified DIR so it also lists the name of the current directory. Modified BINNING so a naked return on the prompt for min and max would cancel the tool. Modified READDATA so it eliminates embedded unused ADAMS columns. Added a new option-- the time period for normalizing rainflow cycle counts. Increased the precision for Merge Tool output from G11.4E2 to G13.6E2 so time could keep its precision. That bug was found by Alan Wright. v4.51 07/07/94 M. Buhl Dave Laino found a bug in FIND_BLK for the cycle limiting. I fixed it by adding IN_CYCLE=.FALSE. to the beginning of the routine for when END_REC > 0. Modified READDATA so that when "?" is entered for # of columns prompt, it calls SHOWHEAD instead of DISP_COL. v4.52 07/20/94 M. Buhl Dave Laino found a bug in READDATA. If he asked to see the header for the number of columns prompt, the file got rewound and so the program aborted when it tried to parse the header as floats. The bug was fixed by calling the new routine SKIPFILE after showing the header. A REWIND was also added to SHOWHEAD so the user could see the top of the file. v4.53 08/02/94 M. Buhl Dave Laino found that I had not been closing the results file when aborting primary tools. He also found that the date in the headers had a "T" in it on the SPARC. It turns out the SPARC f77 documentation for the FDATE() function is wrong. v4.54 08/15/94 M. Buhl Dave Laino reported that the Histogramming Tool doesn't allow one to use column 1 for generic files. I changed FIRSTCOL to "1" and called GET_COLS with a 0 for IND_COL. Dave also discovered that the first PRI_HNUM data records got skipped. I modev the call to SKIPFILE for the number of channels so that it is called only if SHOWHEAD is called. v4.55 08/16/94 M. Buhl Dave Laino discovered that the Interpolation Tool doesn't print out time with enough precision. I'll change all GPP file output so that it uses G13.6E2 format. Subroutines changed are: INTERP, AZIMAVER, BINNING, HISTGRAM, v4.56 09/27/94 M. Buhl I added a line to the startup screen that tells what the array limits are. I also initialized N_MERGE in the BLOCK DATA routine. v4.57 10/03/94 M. Buhl I found that I was not getting the last column of YawDyn output. I modified READDATA to fix it. v4.57 10/11/94 M. Buhl When compiling for the PC-XL, I found that I was using the wrong intrisics for minimum and maximum. I fixed both gpp.f and binning.f. The R8000 linker complained about the use of ALARM and WAIT for functions, so I renamed them in all routines to GPPALARM and GPP_WAIT. v4.57 10/25/94 M. Buhl I changed READDATA because the LINE_NUM used to warn the user of bad lines did not account for empty lines. v4.57 12/05/94 M. Buhl I changed the banner screen to call GPP the "General-Purpose Postprocessor." v4.58 04/06/95 M. Buhl When I recompiled for 25 columns, many FORMATs broke because I had hard-coded them for 20 columns. I changed all FORMATS to assume a max of 50 channels. I sure hope that will be enough. v4.60 05/25/95 M. Buhl I added the ability to read in binary data from the Unstead Aero Experiment (UAE). I added the flag, PRI_UAE, to denote a UAE file. I modified many routines to handle the new PRI_UAE flag. I also renamed GPPALARM to USRALARM in all files. Fixed the Interpolation Tool so it quits when a zero step size is entered instead of bombing. Made a minor change to DIVIDE so is says "second" instead of "seconds" for one second. Modified the Bin Tool so that entering a zero for the column to bin against exits the tool with proper messages. Changed the names of the tools so they don't have "ing" (e.g. Azimuth Averaging Tool -> Azimuth-Average Tool). I added two digits of precision to the output time column for the Interpolation Tool. Fixed a minor typo for the return message from the Escape Tool. I modified the Merge Subtool so if you enter more columns than the secondary array can hold, it will make you choose again instead of bombing. Modified the Merge- Tool Menu so that it displays the number of columns in the secondary array. Also fixed the Merge Subtool so that it won't ask for columns if the secondary array is full. v4.60 05/31/95 M. Buhl Debugged the UAE reading code. Ported the latest changes to the Lahey compiler. v4.60 06/02/95 M. Buhl Debugged the Lahey version of the UAE-reading code. Ported new code to the NDP and Sun compilers. v4.60 06/13/95 M. Buhl When compiling for the Sun, I found an incorrect GOTO in the Options Tool. v4.61 06/28/95 M. Buhl I found that I had not set PRI_DELT for UAE files. I fixed routines in choose.f and READ_UAE in the sys_*.f files. v4.70 07/25/95 M. Buhl I added 2-D binning with statistics to the Bin Tool. I also added statistics to the 1-D binning. I changed ASKBINS to add a MAX_BINS argument and changed all calling routines. v4.71 07/26/95 M. Buhl Lee Jay Fingersh discovered that with the F77L3 version, when he did binning and ran the GET_COLS subtool, that it always listed Azimuth in the list verification. This happened with the F77L3 version (and maybe others) because the flags that told GPP what type of tool was being used were initialized to random values. I fixed it by setting all the flags to .FALSE. in the BLOCK DATA routine. Another bug tracked down and destroyed. Thanks, Lee Jay! v4.72 09/12/95 M. Buhl Alan Wright discovered that we need to use the same bin widths for the Rainflow Tool if we want to do valid comparisons. I made some quick changes to the tool to prompt the user for the max value for each binned variable. It needs to be cleaned up and beautified. v4.72 09/19/95 M. Buhl Lee Jay Fingersh recompiled the program for 35 channels and DISP_COL bombed because the STR variable was too short for so many columns. I changed it from 300 to 1000 characters. He also discovered that the new 1D binning bombs when a bin has zero counts. I fixed BIN_IT1 to check for zero counts. v4.73 10/03/95 M. Buhl I cleaned up the I/O on the new queries in the Rainflow Tool so it looks a little nicer. v4.74 02/08/96 M. Buhl I added two digits of precision to the indices for min and max in the .st files. I also added precision for the number of lines that GPP prints out when it reads in a file. I did this by changing the declaration of INT_STR from 5 to 11. This was to accomodate Eric Eggleston who wants to handle up to a million lines. v4.75 03/07/96 M. Buhl I moved SEC_DATA to the top of the DATA_NUM array. Redid the algorithm for computing the standard deviation for the Bin Tool. The old algorithm was the approximate solution. v4.75 03/07/96 M. Buhl Found that in BIN_IT1, I was checking for #pts>1 rather than >0 for computing bin means. I set it to 0. Also in BIN_IT1 and BIN_IT2, I changed the if-elseif-endif for min and max to two if-endifs. I changed the copyright to 1996. v4.76 03/22/96 M. Buhl I fixed a few minor bugs. v4.77 06/28/96 M. Buhl While compiling with LF90, I found that F90 has standard intrinsic functions called TRIM, MERGE, and PACK. I renamed my functions to TRIMIT, MERGEIT, and PACKSTR. I removed the QUIT argument from the call to MERGMENU in TOOLMENU. In SPECFT, I added the ERROR flag to the call to REALFT. It was in the argument list in REALFT. I also added a test for ERROR in SPECFT to return to the PSD tool if an error occured. v4.78 10/31/96 M. Buhl I found that the MS Fortran PowerStation compiler reads zeros from blank lines. I changed the test for zero to be after the test for a default answer in the Bin tool to get around the problem. v4.79 11/01/96 M. Buhl I found that NT treats environment variables as case sensitive, so I convert environment variables to UC before testing them against a desired variable in the sys_pcl.f(or) file. I also changed the sys_pcm.f(or) version of GET_ENV to just call GETENV. I changed GET_ENV to use ENV_LEN as its third argument instead of ERROR. It now returns a zero if the variable is not found. I updated all routines that called it. I eliminated GET_HOME and changed the call to GET_ENV in options.f(or). v4.80 01/16/97 M. Buhl Emil Moroz found that the DIVIDE routine did not work for IRIX 5.3. It seems to be a bug in the SGI compiler. I got around the bug by initializing TIME with a data statement. I also reordered the EQUIVALENCE statements in BINNING so that I wouldn't get misalignment messages. v4.81 02/19/97 M. Buhl I got annoyed that for some reason I had required a minimum of two columns for a generic file. I changed it so it's OK for just one column. v4.82 02/28/97 M. Buhl I had to change the size of ANS in READDATA to 11 so I could get around a bug in the MS FPS compiler. v5.00 05/27/97 N. Weaver ** Change log for dynamic array version of GPP ** Redefined PRI_DATA, SEC_DATA, TMP_COL1 and TMP_COL2 as pointers (to allocatable array space) in common block DATA_NUM - this allows local pointers to be assigned to these arrays in lieu of EQUIVALENCE declarations In PWRSPECT, defined PSD as a pointer into SEC_DATA In RAINFLOW, defined CYCRNG as local ALLOCATABLE array in lieu of EQUIVALENCE to SEC_DATA In INTERP, defined local scratch arrays in lieu of EQUIVALENCE scheme In BINNING, defined local scratch arrays in lieu of EQUIVALENCE scheme In BINNING, declared IND_MEAN as a vector for consistent reference In OLDSFILE, added code to check for filename w/o extension to correct potential out-of-bounds array reference In WR_HEAD, added code to check for zero length header labels to correct potential out-of-bounds array reference Added NUMLINE and NUMCOLS to common block DATA_NUM to pass current array row and column dimensions In COMPSTAT (GENSTAT.FOR), added explicit dimension parameters to declaration of array DATA to resolve array declaration error reported by MS Fortran Powerstation Compiler In CHOOSE, added routine CNTLNS and related logic for initial trial at autosizing working arrays v5.01 06/27/97 N. Weaver Trial of derived-type working data arrays - abandoned v5.02 06/30/97 - 07/10/97 N. Weaver Add dealloc to CLR_SEC in module MERGE.FOR. Mod DATA.INC for temporary pointer (TMP_DATA) for choose/merge revision. Mod MERGEIT in module MERGE.FOR for TMP_DATA. Mod CNTLNS in module CHOOSE.FOR to skip header. Mod CHOOSE in module CHOOSE.FOR to not alter SEC_DATA allocation. Mod move CNTLNS into READDATA in module CHOOSE.FOR and correct LINE_NUM initialization for Adams files. Release SEC_DATA before leaving MERGEMENU in module MENUS.FOR. Reallocate PRI_DATA with error flag in SEC2P in module MERGE.FOR. Added logic to CHOOSE for new file with differing row count from secondary file. Mod LSQFIT for subroutine interface and assumed size in routines SVDFIT, SVDCMP, and SVBKSB (to correct array misallignment with dynamic array approach). Added PRIME5 routine to PWRSPECT module to calculate adjusted array dimension with no prime factor larger than 5. Mod PWRSPECT for passing primary data columns to SPECFT. Mod SPECFT for PSD_ROWS dimension in place of MAX_ROWS. Mod INTERP.FOR for subroutine interface and assumed size arrays. Make all deallocations conditional. Mod CHOOSE to re-ask for columns on error. Report number of columns in CHOOSE for YAWDYN files. Set MAX_COLS and MAX_ROWS to 1,000 and 50,000, respectively. v5.03 07/23/97 M. Buhl Reworked INTERP so that we don't use PRI_ROWS to determine the size of the new arrays. For time series read in from a file, use the line count in the file to determine the new array sizes. For fixed-step interpolation, use the number of steps. Also, set the width of the new array to be the number of chosen columns instead of PRI_COLS. Changed the length of the LINE variable to 10,000 in READDATA and (*) in PARS_FLT. Set MAX_ROWS to 500,000 in data.inc. v5.04 07/24/97 M. Buhl I reworked INTERP a bit more trying to find out why page faults were so excessive. v5.05 09/11/97 N. Weaver Blank line test in READDATA (CHOOSE.FOR) changed from STRLEN test to LEN_TRIM for more efficient file read-in. Parameter TST_COL added to DATA.INC to set number of character columns to test to determine if a data line is blank. CNTLNS (CHOOSE.FOR) was modified to estimate row count based on first fifty lines and total filesize. Routine FILESIZE was added to SYS_PCM.FOR using call to FSTAT. v5.06 09/16/97 N. Weaver o Modified SYS_PCM to use DATE_AND_TIME and set year string to 4 characters. o Moved CURDATE and CURTIME from SYS_* to GPP.FOR o Modified SYSTEM.INC to increase VER_DATE from 8 to 10 characters. o Modified GPP.FOR and MERGE.FOR to update output file heading. o Replaced all occurances of STRLEN with intrinsic LEN_TRIM o Removed Lahey references from README.NOW o Correct new indp. data file row count in INTERP v5.07 09/18/97 N. Weaver o Removed tab in column 1-7 in CHOOSE.FOR o Removed debug print statements o Added #comment processing to main menu levels v5.08 09/25/97 N. Weaver o Changed SYS_PCM.FOR to SYS_PCD.FOR for Digital Visual Fortran requirements - USE DFPORT for FLUSH,, FSTAT, and SYSTEM calls and LIST carriage control for OPEN_CON v5.09 10/10/97 N. Weaver o Changed date format in GPP.for and MERGE.for to dd-mmm-ccyy o Change format 5000 in routine INTERP.FOR from 8 to 7 sig. digits in INTERP.FOR due to behavior of Digitial Visual Fortran. o Completed testing against GPPv4.82 using GPPTEST.BAT v5.10 11/13/97 N. Weaver NOTE: GPP development task id's, where relevent, are indicated by "[tsk##]" o Added 5th order data and fit to LSQ tool test in GPPTEST sequence [tsk27] o Added routine CHKSIZE to CHOOSE.FOR to correct file size checking [tsk55] o Adjusted column location for error message in SET_PRI (now CHKSIZE) [tsk56] o Modified DISSTATS formats for case when array index is > 99999 [tsk02] v5.11 11/19/97 N. Weaver o Modifed routine FLT2LSTR text string length in GPP.FOR to process channel 1 with negative numbers - resolves "*****" output in TRIM tool when atypical data appears in channel 1 (e.g. not a time channel). [tsk01] o Modifed routine INTERP and supporting routines for double precision independent data channel and updated test protocol files [tsk03] o Created routines PRI_STAT and SEC_STAT from COMPSTAT (module GENSTATS) to correct stack overflow occuring from reading large (records>90k) files. The problem appeared to result from using array pointers as an explicit subroutine argument [tsk57] v5.12 11/21/97 N. Weaver o Removed copyright statement from program banner. [tsk58] o Modifed file write operations to test for IO error including unwritable or read-only files and directories [tsk 4 & 5] v5.13 12/1/97 N. Weaver o Mod GIVEHELP and MENUS for OS independent path separator [tsk62] o Replace use of LEN_TRIM when direct use of TRIM is appropriate [tsk63] v5.14 12/2/97 N. Weaver o Mod GPP.FOR to trim date string in sign-on message [tsk64] o Mod GPP.FOR to replace "IF(LEN_TRIM..." with "TRIM()" [tsk08] o Mod routines for longer file strings (see note in task database) [tsk09] o Checked behaviour of none 8.3 file names (SYS_PCD MAXFNLEN=20) [tsk10] v5.15 12/10/97 N. Weaver o Mod OPTIONS.FOR and GPP.INI for azimuth column option [tsk25] o Mod PWRSPECT and RAINFLOW for flexible azimuth column o Mod DATA.INC, CHOOSE.FOR, GENSTAT.FOR, and GPP.FOR for new logic variable PRI_TTLS to simplify test for data sets with known column titles. [tsk52] o Process tab delimited column titles in generic files in subroutine READDATA (CHOOSE.FOR) [tsk53] v5.16 12/22/97 N. Weaver o Modified READDATA for alternate screen and output formats. [tsk65] o Mod OPTIONS and MERGE for optional title output. [tsk68] o Mod GPP.FOR for revised sign-on message [tsk69] o Mod MENUS.FOR to remove file type from screen message [tsk67] o Mod CHOOSE.FOR for new YAWDYN file header (update "G" test data file to no longer refer to YawDyn in first header line) [tsk54] v5.17 01/05/98 N. Weaver o Mod DATA.INC, OPTIONS.FOR, OPTIONS.INC and CHOOSE.FOR for FAST file type [tsk13] o Add test 13 and 14 to GPPTEST sequence to test reading FAST files v5.18 01/07/98 N. Weaver o Mod DATA.INC, OPTIONS.FOR, OPTIONS.INC and CHOOSE.FOR for BLADED file type [tsk14] o Corrected READSTR in SYS_PCD.FOR for uninitialized string array o Add test 15 to GPPTEST to read UAE files o Add test 16 and 17 to GPPTEST to read 2D and "3D" BLADED files. o Correct OPEN statement in READ_UAE in SYS_PCD.FOR for DVF compiler v5.19 01/14/98 N. Weaver o Added GET_LIST and subordinate routine GET_RANGE to GET_COLS in CHOOSE.FOR to implement column ranges in column selection process [tsk22] o Modified BLDD_HD and GET_BLDD to look for angular column units in 2D files and, where found, convert radians to degrees during the read-in step. [tsk71] v5.20 01/28/98 N. Weaver o Add ADAS_HDR and READ_ADAS to CHOOSE.FOR to process ADAS type files [tsk12] o Add test 18 to GPPTEST for ADAS type files o Add GET_DIR to _SYS using GETCWD library routine to obtain working directory path o Update WR_HEAD in GPP.FOR to output working directory information [tsk70] o Extend old logic in WR_HEAD to find base file name and relative path when ".\" and "..\" are used. o Modify OPTIONS.FOR for default output path name [tsk26] o Add routine ADJPATH to GPP.FOR to modify output file path, in necessary o Add call to ADJPATH to various GPP tools o Add G option for generate time column in merge menu [tsk19] o Add GENTIME routine to MERGE.FOR to generate time column o Add GENTIME test 19 to GPPTEST [tsk71] v5.21 02/05/98 N. Weaver o Replace COMMON blocks in INCLUDE files with USE references to modules in GPP_MOD.FOR [tsk07] o Change handling of NR_NEW equivalence in INTERP to avoid conflict with module USE reference to SEC_ROWS o Move BLOCK DATA declarations into respective modules to avoid reference conflict with module USE statements. o Moved READSTR and READLIST from SYS_**.FOR to GPP.FOR o Added REWIND UT statement to SAVEOPTS in OPTIONS.FOR o Added GPP_MOD.FOR to archive file list o Note: Unless specificially requested at a later date, files SYS_SGI, SYS_NDP, and SYS_PCL will not be updated to include changes made to SYS_PCD and SYS_SUN. v5.22 02/19/98 N. Weaver o Updated comments in GPPTEST and associated README file to list test sequence o Updated comments in GPP_MOD.FOR o Modify AZIMAVER.FOR for bin statistics [tsk24] o Modify DIVIDE in GPP.FOR to reduce function nesting to avoid stack overflow. o Modify AZIMAVER to return if column 0 is selected for azimuth column.[tsk75] o Add DIVIDE tool to test suite. [tsk73] o Add 2D binning to test suite. [tsk73] o Add FILTER tool tests to test suite. [tsk73] o Correct old bin center calculation in AZIMAVER o Modify AZ_AVG output tables (mean,min,max,sigma,mean-sigma,mean+sigma). o Change OPTIONS message for unreadable file o Change CHOOSE to return if no channels are selected for a generic file v5.23 02/26/98 N. Weaver o Add GPPTEST KornShell script to file archive for Unix testing [tsk74] o Corrected gpptst20.inp to include missing file reference o Correct GPP archive to consistently use lower case file references o Misc. updates to ksh script o Altered formatted OPEN statements to include RECL=10000. [tsk79] o Significant digits reduced in output (typically from 6 to 4) [tsk78] o Modified GPPTEST.BAT to test for successful completion of each test o Modified MERGE to check for time output channel and adjust format to F11.4 from G11.4E2 v5.24 03/02/98 N. Weaver o Change format in LSQFIT from 1PG11.4E2 to G11.4E2 o Correct uplow case reference in bldd3d1.dat o Add check in RAINFLOW for invalid count period [tsk80] o Add limited error checking to GETOPTS routine. [tsk81] o Modify interp test for GPPTEST sequence to reduce lines of output o Modified CHOOSE.FOR for ADAS and BLDD file header handling o Tested DVF floating-point consistency compiler option v5.25 4/16/98 N. Weaver o Trial Rainflow routine using Sandia algorithms [tsk51] o Add option to enable/disable peak-valley filtering o Add option to set racetrack filter threshold o Add information to rainflow output headers o Correct PATH_SEP handling in GPP.FOR and CHOOSE.for [tsk83] o Correct Histogram bug for constant columns [tsk84] o Modify screen write operations in SYS_SUN for console output restriction of 256 characters. o Modify DISP_COL (GPP.FOR line 1088) and HISTGRAM.FOR for use of PRI_TLLS flag. Modify DISP_COL for uninitialized string (placement of WRITE(STR,1100)) [tsk85] o Add Option Tool option "J" to set binning in rainflow tool. o Define default for Rainflow options as 1D binning, no peak extrapolation and no race-track filtering. o Modify title handling in all routines to use PRI_TTLS flag instead of PRI_GEN o Update GPP, CHOOSE, GET_COLS, and RAINFLOW per task instructions. [tsk87] o Add test25 to GPPTEST to checkout 2D rainflow binning. o Modify 2D rainflow binning to ask for cycle mean max and min on one line o Modify routine RTRACK (RAINFLOW.FOR) to skip filtering if threshold is 0 v5.26 4/20/98 M. Buhl o Modified the screen write operations for the Sun that were done in v5.25 so that instead of writing out Str(1:256), we write out Str(1:MIN( 256 , LEN( Str ) ) ). Otherwise, we see a lot of nonprinting characters on the screen when the length of the string is less than 256 characters. [tsk93] v5.27 6/11/98 N. Weaver o Created VER_MOD.FOR containing VERMOD module. [tsk94] o Modified IF test in RAINFLOW.FOR (line 397) [tsk92] o Corrected CHOOSE.FOR to set PRI_TTLS flag for Merge type files [tsk89] o Add QUIT option to Filter tool menu and return to Filter menu from Average filter if 0 or 1 are entered [tsk90] o Correct tab handling in CHOOSE.FOR - used READSTR routine [tsk91] o Update GPPTEST files for "/fltconsistency" compiler option o Edit occurances of Yawdyn to YawDyn and change record estimate text [tsk77] v5.28 6/25/98 N. Weaver o Correct header logic for azimuth average tool. [tsk99] o Modify logic in PEAKS routine to correctly apply three-point [tsk98] extrapolation o Updated UNIX makefile to include ver_mod.for o Updated CHOOSE for generic header handling [tsk101] o Converted options listing from alphabetic to numeric [tsk86] o Updated OPTIONS and RAINFLOW for normalized output [tsk18] o Add test 26 to GPPTEST for 2D normalized binning test o Update arcfiles list for GPPTEST additions o In RAINFLOW report bin means as center value and streamline screen output. o Modify file length compatibility check to occur during a MERGE rather than during a CHOOSE. [tsk102] o Correct bugs in OPTIONS and AZIMAVER routines v5.29 7/10/98 N. Weaver o Implement escape character (" ` ") [tsk76] o Update help text. v5.30 7/23/98 N. Weaver o Add Calculated Channel feature based on parser logic by James Van Buskirk. (includes revised merge menu, updated help menu and file, and addition of CALCCHNL.FOR and PARSE.F90 to the project file set) [tsk17] o Updated arcfiles.txt list and makefile for additional project files. o Amended Calculated channel approach to include both primary and secondary data arrays. v5.31 7/29/98 N. Weaver o Added error messages to tokenizer routine. o Added error messages to get_val routine. o Added logic (PRSRHELP.FOR) and help text file "CALCHELP.TXT" to provide help messages while entering an algebraic expression in CALCCHNL. o Updated arcfiles.txt list and makefile for additional project files. v5.32 8/4/98 N. Weaver o Updated error message passing and message text for CALCCHNL tool. o Correct behaviour of Merge tool when quitting without creating data channels in the secondary array. o Update RAINFLOW.FOR to use bin area normalization for 2D case. v5.33 8/24/98 N. Weaver o Updated parse.f90 for more accurate error messages based on comments by Jim VanBuskirk. o Correct typos in calchelp.txt and value of Eulers constant in parse.90 v5.34 9/01/98 N. Weaver o Modified routine READDATA in CHOOSE.FOR to directly read column values into a raw data array rather than use routine PARS_FLT. File read time appears to be reduced by a factor of 2 or 3. o Added code to trap read errors with revised READDATA scheme. o Added routine IIRFLTR to FILTER.FOR to perform discrete filtering v5.35 9/02/98 N. Weaver o Added GET_COLS and float freq. query to IIRFLTR o Added IIR filter and Calculated Channel case to test suite o Updated HELPFILE.TXT for IIR filter. o Added test for constant data to IIR filter. v5.36 9/22/98 N. Weaver o Modified HISTGRAM for dynamic allocation of working arrays [tsk105] o Corrected Interpolation Tool logic for calculating of new range o Removed Option Tool option for 2D rainflow binning o Eliminated output of zero range values for 1D rainflow binning o Added feature to Azimuth Avg. Tool to search column labels for "AZ" [tsk100] o Adjust output format and size of primary and secondary heading string in module WORKING_DATA, routine DISP_COL in GPP.FOR, and in CHOOSE.FOR (routines READDATA & SHOWHEAD) to handle data files with up to 1000 data columns. o Adjust output format for 1000 data columns in: LSQFIT, HISTGRAM, INTERP, MERGE, PWRSPECT, BINNING, RAINFLOW, & UNITS v5.37 9/24/98 N. Weaver o Correct tab treatment for 1D rainflow output o Update WR_SCR() in SYSPCD and SYSSUN o Add Path separator to OPTIONS tool o Reorder options in OPTION tool o Alter statements like WR_SCR(' ') to WR_SCR('') o Correct "dash" bug in GET_COLS routine o Alter new WR_SCR() for MAXLEN=80 and remove leading "1X" format string o Alter GPPTST10.INP to include dash-delineated column ranges v5.38, 10/13/98 N. Weaver o Replace SPLINE and SPLINT routines from Numerical Recipes with FITPACK routines, SPLINE2 and SPLINT2 in module INTERP.FOR. o Modify FITPACK routines for dynamic allocation, "implicit none", and set fixed FitPack smoothing parameters. o Corrected string length problem in options tool for path separator o Increased search to 50 lines for estimating generic file header o Removed errant setting of SEC_COLS in INTERP.FOR v5.39, 10/15/98 N. Weaver o Replace NR least squares routines with Mathews Algorithm 5.2 equiv. o Replace FitPack spline routines with Mathews Algorithm 5.4 equiv. v5.40, 12/10/98 N. Weaver o Modified long merge menu to include calculated channels. o Corrected logic to display primary/secondary statistics. o Corrected Nyquist string handling in FILTER.FOR o Update various section of the help text file. o Add help message for GENTIME and ESC_CHAR to help text file o Update GIVEHELP.FOR for GENTIME tool and ESC_CHAR. o Update GENTIME messages in MERGE.FOR o Correct array reference problem in FINDLINE (GPP.FOR) and modify WR_SCR to split lines on tabs as well as spaces. v5.41, 12/11/98 N. Weaver o Remove dead code in CALCCHNL.FOR o Correct "== .TRUE." in AZIMAVER.FOR o Move SUN makefile to GPP directory from GPP/Source directory o Correct console id from CU to US in SYS_SUN.FOR o Move ISNAN calls in PARSE.F90 to SYS_*.FOR o Remove function label from "end interface" statements in PARSE.F90 o Remove "Checking Options..." from OPTIONS.FOR o Add call to IR_ISNAN to IS_NAN function in SYS_SUN.FOR o Remove extra alarms from routine CHKMRG in MERGE.FOR o Update sec. array statistics after every merge (MERGE.FOR). o Correct error handling logic for an unsuccesful "Choose" from within the merge menu. (routine CHOOSE in CHOOSE.FOR and routines MERGMENU and TOOLMENU in MERGE.FOR) o Add help message about the comment ("#") character. v5.42, 2/12/99 N. Weaver o Update search in Azimuth Average Tool for AZ column to allow string to appear any where in a label (use INDEX function). o Update Histogram tool to report bin means rather than bin centers. o Alter Help menu to give help on GENTIME tool for character "G" and switch order of "W" and "X." v5.43, 2/12/99 N. Weaver o Update GETOPTS to check for proper PATH_SEP when setting default options. v5.44 14-May-1999 M. Buhl Fixed the histogramming tool so that we use the bin center instead of the bin mean when the bin count is zero. This prevents NaNs in the output. v6.00 25-Jun-1999 M. Buhl This version coincides with the release of the GPP v6 User's Guide. I made a minor change to two error statements in Parse.f90. v6.01 25-Jun-1999 M. Buhl I changed the STATUS for opening the console in Sys_Sun.for from "UNKNOWN" to "OLD". I guess something changed in the operating since I last compiled GPP there and "UNKNOWN" no longer works. This change does not affect the PC version. v6.02 08-Nov-1999 M. Buhl I modified the cycle-limiting tool in limit.for so that it will guess which column is the azimuth column. I also eliminated a bug that cropped up in the cycle limiting when the end of the data coincided with the end of a cycle. v6.03 08-Dec-1999 M. Buhl I modified GENTIME() in merge.for so that it recalculates the statistics of the secondary array after generating a time column. v6.04 03-Apr-2000 M. Buhl I found that when generating a time column, the variable SEC_DELT (new time step) was not being set. This meant that when one did a PSD on the merged data, the time step was zero and it messed up the frequency calculations. I modified merge.for\gentime() to fix it. v6.05 31-Jul-2002 M. Buhl It seems that for ADAS files, the time step (PRI_DELT) was not getting computed. I modified Choose.for\Read_ADAS() to fix this. I'm not sure if ADAS files always have time in the first column, but the code now assumes so. v6.06 10-Oct-2002 M. Buhl Neil had problems with some of the internal writes failing because the declared string was too short for the large number of columns he had. I looked for all occurances for C*1000 and changed them to C(5000). I had to modify gpp.for\DISP_COL(), choose.for\ADAS_HDR(), and choose.for\BLDD_HD().