📄 changes
字号:
13 apr 90 bugfix mwthe command: output xxx yyy 4096 32768 0,30 0,1failed with a msg, create_T: nlvol not zero. This meanta mismatch between the timespan count and the number intthe linked list. The cause turned out to be a bad addressin output_tspan, in the code which checked how many T typelogical records to output. It output them all in the first tspan.Also, there was an internal assumption that the end timespanwould be start tspan + ntspan*tspan_break. This is not trueif there are holes in the request (as there were). See thecomments in create_T.c and create_V.c about this. They nowsearch for a start/end tspan which brackets the start timeof the next data to be accepted (in the lvol linked list).** This may not be the way that IRIS will always want to do it **Probably the tspan_list structure should be amended to containthe start and end times within each node - it would make all ofthis much more simple, but it needs a bit more checking to implement.struct tspan_list{ int count; int seqno; struct input_time start; /* start time for this tspan */ struct input_time end; /* this too just in case tspans are not all * the same size ?? */ struct lvol *start; struct tspan_list *next;};usage.c was updated to note that output disk files are *appended*to, which might be unexpected behavior. Rdseed will break ifthe same output file is used twice.A bug in the way that the volume logical record, end_volume timewas computed in create_V.c was fixed. It was setting the end_volumetime to the start_volume + ntspan*tspan_break if tspan_break wasnon-zero. If the volume break is zero, it now prints an error msgand dies, since the sum of tspans volume span is wrong if holytspans are used.15may90 mw enhancementSEED v2.1 has several new blockettes which reduce the amount ofinformation redundantly included. These are 043-048 abbreviationblockettes, and 060, which references them. Include code inHeader_phase/{ load_data.c, is_in_twindow.c } which permits this.Also clean up load_data.c (getmore), which was calling big_buffermore often than necessary.PROBLEM: these blockettes should not appear on a V2.0 SEED volume.We can't yet call output a v2.1 writer, since it does not write 074blockettes yet.12jul90 mw bugfixChannels with sample interval = 0 were being ignored even thoughthey were requested and seemed to be in the window.The problem was that the end time of a data record was computedas the start time, due to delta-t = 0. This is fixed by passing theend timespan time down from the main into the routine which computesthis end time. If the sample int is zero, the tspan time is used ratherthan start+deltat*nsamples.Main/main.c Scan/{find_data.c,find_segment.c,get_scaninfo.c}16jul90 mw BUGFIX more timespan screwupsSigh. A typo in two strncmp() calls which determined when thestation/locations/channel changed while scanning the lvol listcaused a fatal core dump. The incorrect character count was5+7+3, and it should have been either 5+2+3 *or* 7+3.It would have additionally compared the year and one byte of theday in the data record header.fix problem with large (n=255) datapeices. This generates blockettesabout 13k in size (if it could). Breaking blockettes into 9999 bytepieces broke during the fix of 04/13/90 (was that a Friday?)fix problem with last pointer in each 073 - was not adjusted forthe size of the logical records comprising the timespan headers.Header_phase/create_T.c was modified.09 Nov 90 mwchange debugging printout level of all subroutines in Utilitiesfrom >= D_MAX to > D_MAX - I'm tired of paging throughall the crap. Will do same to other routines later...BUGFIX:The problem seems to be that when triggered data is not in theuser window, there may be no data in the timespan, even thoughmany user reqeust records were processed. For example, in theend of req.temp,[find_data] Nodes added to lvol = 1[find_data] Nodes added to lvol = 1end_tspan 1989 071 00:00:00.0000[find_data] Nodes added to lvol = 1[find_data] Nodes added to lvol = 1[find_data] Nodes added to lvol = 0[find_data] Nodes added to lvol = 1[find_data] Nodes added to lvol = 0[find_data] Nodes added to lvol = 1[find_data] Nodes added to lvol = 0[find_data] Nodes added to lvol = 1[find_data] Nodes added to lvol = 0end_tspan 1989 072 00:00:00.0000end_tspan 1989 073 00:00:00.0000[find_data] Nodes added to lvol = 0[find_data] Nodes added to lvol = 0[find_data] Nodes added to lvol = 0[find_data] Nodes added to lvol = 0[find_data] Nodes added to lvol = 0day 72 has no requests for it, but 73 has requests, but thereis no data which is within the window. This blows up create_Twhich tries to make a tspan for a non-existent time span!This was fixed by having both create_T.c and create_V.c checkfor a count of 0 datachunks in a timespan. This will only occurif the last timespan in a volume found no data records in a window.(It is ok if there is an empty tspan in the middle of a volume -eventually it will either have something in it, or it will be thelast tspan in a volume and so be caught by the above test.)Flush_output_volume.c also now checks for this trailing emptytimespan.Along the way, a bug which caused create_T.c to mistakenlyomit blockette 070's in a timespan was fixed. The problemhere was the improbable assumption that having the samestation/channel/location together in the lvol list meantthat these were the same "datapeices" for 073 blockettepurposes.The incorrect version was gluing together datapieces evenacross timespan boundaries. This is fixed by downcountingthe count of datachunks (lvol nodes) within each timespan.It only worked before because there were always a mix ofstation/channels in adjacent timespans. Sigh. The data recordswere *not* affected, only the timespan headers.create_T.c was neatened up some by adding new routine make_room.19-nov-90 mw begin changes for SEED v2.1changed SEED_VERSION to SEED_DEFAULT ("02.0")added new routine get_SEED_version which sets SEED_Version to environment variable SEED_VERSION's float valuecoding in create_v.c and create_T.c will be done to detect value of SEED_Version and respond accordingly.20-nov-90 mw continue seed v2.1 changes create_V.c use SEED_Version instead of SEED_DEFAULT (see above) create_T.c add if-then-elses based on SEED_Version and blockette_type completely untested yet.02dec90 mw continue seed v2.1 changes create_V.c leading zero in format ("02.1", not " 2.1") create_T.c get the 074 pointers right, get tspan numbering right flush_output_volume.c put all tspans at front24dec90 mw more robustness get_scaninfo.c if sample rate factor is non-zero, but sample rate multiplier is zero, assume that the multiplier should be one. This is undefined by the seed document. Should it be an error?19mar91 mw problems with "non-existent file"s which really exist find_data.c in the case that a request record finds no data in the file, in one case, this routine would return without closing the open file. Eventually, open() would get a "too many files open" error. This was fixed, and better error messages for debugging added. This particular problem occurred because the end time was earlier than the start time in several bad Holdings.File records.03apr91 mw better appearance Main/main.c remove "untested v2.1" message Main/usage.c better description of SEED time fields16apr91 mw bugfixes Header/ get_chnl_hdr.c zero last byte of atoi() strings clen,ctype load_data.c zero last byte of atoi() strings clen,ctype make_lrec.c zero last byte of atoi() strings clen,ctype Utility/ big_buffer.c change scheme for allocation to prevent extra block of allocation. tested on 4/330 under 4.1 in combinations of <none>, -p, -g, -O. tested on 3/50 under 4.1; 3/280 under 3.5; 4.280 under 4.1.06 june 91 mw change Includes/structures.h increase the size of the file name remembered in the lvol node from 40 chars to 256 chars so nobody can ever again build a directory/filename which is too long. So long as we always have lots of virtual space, 10,000 name requests will only eat 2.5 Mbyte of virtual. Traversing this list is usually done in io bound loops, so the increased paging should not be a factor. Also move the name to the end of the structure, to reduce potential padding problems.17 june 91 mw change Scan_phase/find_data.c check the offsets found by find_segment. If they are impossible ( <0, end>=start, >size of file ) then barf with a FATAL bugcheck. Prompted by such case (how?) in Scripps testing data.18 june 91 mw bugfix (sort of) Scan_phase/find_data.c Warn if the file's actual size is not consistent with that given by the request record, but use the actual. Always set the expected number of segments to zero, as the code within find_segment should never quit checking for segments. Scan_phase/find_segment.c More debugging included; this routine needs a rewrite badly and should be simplified.03 dec 91 mw bugfixes from Sue Schoch, made in ?june 91 Scan_phase/find_data.c don't warn about file offsets which seem to be incorrect; find_segment can in some cases return none. find_segment should probably be fixed to avoid this. Scan_phase/find_segment.c increase the size of msg[] for long file names and seed times.04 dec 91 mw changes for v2.2 SEED started Main/main.c add call to get_creator() Main/usage.c document environment variable CREATOR Utilities/get_creator.c new routine, needed for new blockette 10 field Header_phase/create_V.c change code for blockette 10 Header_phase/make_headers.c change assumption that blockette 10 size fixed change all references from floating point SEED_Version to integer *10 SEED_Version; thus, version 2.2 appears as 22. Header_phase/create_T.c, create_V.c, make_headers.c Include/output.h, globals.h Main/main.c Output_phase/flush_output_volume.c07 dec 91 mw more changes for v2.2 SEED Include/structures.h new fields for lvol: gofast and ngofast for eventual use by Scan_phase stuff to find accelerator indicies Scan_phase/put_lvol.c zeroes out both new fields.09 jan 92 mw bugfix Scan_phase/get_scaninfo.c symptoms: when a slow channel (ANMO UHE) data record crossed a year boundary (90 - 91) and the start time was late in the day (12:00) the calculation of the end time in get_scaninfo did not take into account the possibility of overflow in add_time. Up to one day of time might have to be added in, this could cause overflow.10 jan 92 mw more problems also a problem: when ultra low sample int channels have 2 records, say 2 4k records, then the start time of the second chunk is about 3 days after the start of the 1st chunk. If you use 1 day tspans, then the second chunk is 3 tspans after higher rate channels which surround it. This causes "holy" tspans11 feb 92 mw bugfixes Scan_phase/get_segment.c for SEED v2.1 or greater, blockette 074's had end times which came from the next record's end times, typically. This has been fixed. No other symptoms were observed for this bug.14 sep 92 wan cosmetic Header_phase/get_stn_path.c Print "No station comments available" message only when above D_MIN debugging level. 15 sep 92 wan bugfix Header_phase/build_stn_path.c This function did not allow station name "PFO_T" to be processed. Changed station name QC to allow the "_" character in station names.sept, 93 chris L added support for block 71s being in the data_files or header directories. Fixed problem with outputing DATALESS seed added support for seed version 2.3 including SEED_LABEL fixed bug in make_room added check for byte swapped data. Timing data in data records are integers. changed program name from "output" to "pod"Aug 31st, 94 - added checking for garbage in the data files.Mar 1st 1995 - changed the volume beg end time to really be the beginning and ending time span Mar 15th 95 - updated volume start end time for dataless seed. Since no timespans available, use the request start,endMAr 15th 95 - made pod "network" aware, no longer dependent upon unique station names within volume. New HAR... station/channel naming convention - took out 'S' & '###' & 'C'May of 97 - support for varying record lengths, from passcal dataDec-Feb -97,Spring 98 - support for location code processing - added PODJUSTDOIT functionality - some bug fixes, bug when user entered logical record size less then 4k - bug with processing LOG records - bug fix for multi log record processing. pod sometimes was off slightly when calculating B74s.POD 4.0.b1Sept 30 1998 - changed the h file, took out old and unused fields. - final version of location code processing - new channel directory naming convention, ala LHE.03POD 4.0.b2Nov 2, 1998 -took out BW from holdings file POD 4.1 added in support for Blockette 42 and 62 added ability to scan data directories recursively. No need to specify each and every data directory in the environment added in PODJUSTDOIT functionality to DATALESSes small bug, check for sample rate of zero in get_scan_info().POD4.1.2 small bug in data record length scan added in rec->nsamples == 0 test (from UCB)podv4.1.5 Sept 27 2002 small bug in scan_info.c. When calculating the duration of a record, it used nsamples-1, which caused problems. Took out the -1.podv4.2March 3 2004 Redid how pod outputs sequential record numbers. Sequential record numbers now exactly mirror the logical record. data records < log rec size now get built with sequential record numbers == log rec count Changes some warnings to ouput the stn/chn info on same line as the warning label
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -