亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? get_scaninfo.c

?? seed格式數據解壓程序,地震分析人員必備
?? C
字號:
/*===========================================================================*//* DMC Interim out |            get_scaninfo.c             |   Scan_phase    *//*===========================================================================*//*	Name:		get_scaninfo.c	Purpose:	retrieve a subset of SEED data header info from a given buffer				containing one data record	Usage:		void get_scaninfo ()				char *buf				struct input_time *end_tspan;				struct input_scan *scan;				struct input_time *rec_start;				struct input_time *rec_end;				long *interval;				get_scaninfo (buf, scan, rec_start, rec_end, interval)	Input:		char *buf;		ptr->data record hdr			struct input_time *end_tspan;	ptr->tspan end time	Output:		struct input_scan *scan;ptr->scan subset of data hdr			struct input_time *rec_start;	ptr->start time of data record			struct input_time *rec_end;ptr->end time of data record			long *interval;		ptr->data sample interval													(fracsec/samp)	Externals:	Debug - setting of environment variable DEBUG (globals.h)	Messages:	None	Warnings:	None	Errors:		None	Fatals:		None	Called by:		Calls to:	add_time	adds delta e-04 sec to struct input_time	Algorithm:		Notes:		Assumes input buffer data in cpu-compatible byte order	Problems:	None known	Debug:		level D_MIN -				level D_MED -				level D_MAX -	References:	none	Language:	ANSI standard C, under Sun OS 3.5	Revisions:	03/06/89  Kevin MacKenzie  original version				10jul90	mw	bugfix						fix 0 sample interval channel's end time				19apr91	mw	bugfix						"duration" in units of e-4 sec overflows						for 100 sec sample interval data. This causes						end times earlier than start times. Change to						duration in seconds, use add_longtime.*/                   /*=====================================*//*=================|                                       |=================*/                   /*=====================================*/#include "output.h"#define isaleap(year) (((year%100 != 0) && (year%4 == 0)) || (year%400 == 0))void get_scaninfo (buf, end_tspan, scan, rec_start, rec_end, interval, fname)char *buf;			/* ptr->data record hdr */struct input_time *end_tspan;	/* ptr->time of end of current tspan */struct input_scan *scan;	/* ptr->scan subset of data record hdr */struct input_time *rec_start;	/* ptr->start time of data record */struct input_time *rec_end;	/* ptr->end time of data record */long *interval;			/* ptr->data sample interval(fracsec/samp)*/char *fname;			/* used for error reporting */{	struct input_data_logrec  *rec; /* log rec header plus data rec header */	float frate;		/* data sample rate, e-04 sec/samp */	register long	lrate;	/* data sample rate, e-04 sec/samp */	long duration;		/* time duration of data rec, e-04 sec *//* * compute end time of the data record from its header info * There is a special case for log or aux channels, where we * don't have a sample interval. In this case we must use * an end time derived from the timespan. */	rec = (struct input_data_logrec *) buf;	if (bytes_need_swapping(buf))	{		/* swap the bytes */		rec->hdr.scan.time.year    = swap_2byte(rec->hdr.scan.time.year);		rec->hdr.scan.time.day     = swap_2byte(rec->hdr.scan.time.day);		rec->hdr.scan.time.fracsec = swap_2byte(rec->hdr.scan.time.fracsec); 		rec->hdr.full.nsamples	   = swap_2byte(rec->hdr.full.nsamples);		rec->hdr.full.sample_rate  = swap_2byte(rec->hdr.full.sample_rate);		rec->hdr.full.sample_rate_multiplier =						 swap_2byte(rec->hdr.full.sample_rate_multiplier);		rec->hdr.full.number_time_corrections =						swap_4byte(rec->hdr.full.number_time_corrections);		rec->hdr.full.bod  = swap_2byte(rec->hdr.full.bod);		rec->hdr.full.bofb = swap_2byte(rec->hdr.full.bofb);	}	*scan = rec->hdr.scan;	*rec_start = rec->hdr.full.time;/* Do time correction */	if ((rec->hdr.full.activity_flags & 0x02) == 0)	{/*		printf("%02x %s %02d:%02d:%02d.%05d + %05d = ", input_data_hdr->activity_flags, this_channel, rec_start->hour, rec_start->minute, rec_start->second, rec_start->fracsec, input_data_hdr->number_time_corrections); */		rec_start->fracsec += rec->hdr.full.number_time_corrections;		while ((rec_start->fracsec >= 10000) || (rec_start->fracsec < 0)) {		if (rec_start->fracsec >= 10000)		{			rec_start->second += rec_start->fracsec/10000;			rec_start->fracsec = rec_start->fracsec%10000;			if (rec_start->second >= 60)			{				rec_start->minute += rec_start->second/60;				rec_start->second = rec_start->second%60;				if (rec_start->minute >= 60)				{					rec_start->hour += rec_start->minute/60;					rec_start->minute = rec_start->minute%60;					if (rec_start->hour >= 24)					{						rec_start->day += rec_start->hour/24;						rec_start->hour = rec_start->hour%24;						if (rec_start->day > (isaleap(rec_start->year) ? 366 : 365))						{							rec_start->year += 1;							rec_start->day = 1;						}					}				}			}		}		else if (rec_start->fracsec < 0)		{			rec_start->second -= 1;			rec_start->fracsec += 10000;			if (rec_start->second < 0)			{				rec_start->minute -= 1;				rec_start->second += 60;				if (rec_start->minute < 0)				{					rec_start->hour -= 1;					rec_start->minute += 60;					if (rec_start->hour < 0)					{						rec_start->day -= 1;						rec_start->hour += 24;						if (rec_start->day == 0)						{							rec_start->year -= 1;							rec_start->day = (isaleap(rec_start->year) ? 366 : 365);						}					}				}			}		}		}/*		printf("%02d:%02d:%02d.%05d\n", rec_start->hour, rec_start->minute, rec_start->second, rec_start->fracsec);  */	}	scan->time = *rec_start; /* Save correct time in scan header */		lrate = rec->hdr.full.sample_rate;	if( lrate != 0 )	{		if (lrate > 0)		{			if (rec->hdr.full.sample_rate_multiplier > 0)				frate = lrate * rec->hdr.full.sample_rate_multiplier;			else if (rec->hdr.full.sample_rate_multiplier < 0)				frate = (float)lrate /					(float)(-rec->hdr.full.sample_rate_multiplier);			else			{				frate = lrate;	/* multiplier == 0 should not happen? */				fprintf( D_OUT,					"[get_scaninfo] sample rate mult zero? %.5s %.3s %d %d\n",					rec->hdr.full.station, rec->hdr.full.channel,					rec->hdr.full.sample_rate,					rec->hdr.full.sample_rate_multiplier );			}		}		else		{			if (rec->hdr.full.sample_rate_multiplier > 0)				frate = ((double)rec->hdr.full.sample_rate_multiplier)/ ((double)(-lrate));			else if (rec->hdr.full.sample_rate_multiplier < 0)				frate = (double)rec->hdr.full.sample_rate_multiplier/ (double)lrate;			else			{				frate = lrate;	/* multiplier == 0 should not happen? */				fprintf( D_OUT,					"[get_scaninfo] sample rate mult zero? %.5s %.3s %d %d\n",					rec->hdr.full.station, rec->hdr.full.channel,					rec->hdr.full.sample_rate,					rec->hdr.full.sample_rate_multiplier );			}		}		if (rec->hdr.full.number_blockettes)					if (parse_type100 (&rec->hdr.full, &frate, fname)) 			{				if (frate == 0)                                {                                         fprintf(stderr, "Warning: get_scaninfo(), bad sample rate found in blockette 100!\n");                                        fprintf(stderr, "Net/stn/chn/loc:%2.2s, %5.5s, %3.3s, %2.2s\n",                                                scan->network,                                                scan->station,                                                scan->channel,                                                scan->location);                                         fprintf(stderr, "\tfor time:%d,%d,%d:%d:%d\n", 							scan->time.year,                                                        scan->time.day,							scan->time.hour,                                                        scan->time.minute,                                                        scan->time.second);                                         frate = lrate;                                }                                else				lrate = 999;			}		*interval = (1e4 / frate);		duration = ((float)(rec->hdr.full.nsamples))/ frate;  /*seconds*//* *			will it fit in 31 bits of e-4 msec *			and still be able to have up to a day of seconds added? */		if( duration < (214748-86400) )		{/*			duration = ((double)(rec->hdr.full.nsamples)*10000.0)/(double)frate; */  /* e-4 seconds*/			duration = (int) (((double)((rec->hdr.full.nsamples-1)*10000))/(double)frate);  /* e-4 seconds*/			*rec_end = add_time (*rec_start, duration);		}		else		{			*rec_end = add_longtime (*rec_start, duration);		}	}	else	{		*rec_end = *rec_start;			*interval = 20;	}	return;}/*===========================================================================*//* SEED reader     |            parse_type100              |     data block  *//*===========================================================================*//*	Name:		parse_type100	Purpose:	parse a data record header for blockette 100s.	Usage:		void parse_type100 ();				char *input_data_ptr;				float *sample_rate;				parse_type100 (input_data_ptr, &sample_rate);	Input:		pointer to beginning of data record header	Output:		none	Externals:	none	Warnings:	none	Errors:		none	Called by:	process_data	Calls to:	none	Algorithm:	search through data record blockettes for blockette 100 sample rate	Notes:		none	Problems:	none known	References:	none	Language:	C, hopefully ANSI standard	Author:		Allen Nance	Revisions:	09/18/92  Allen Nance  Initial version*/parse_type100 (input_data_ptr, sample_rate, fname)char *input_data_ptr;		/* ptr to start of data record */float *sample_rate;		/* ptr to returned sample rate */char *fname;			/* for error reporting */{	struct input_data_hdr *input_data_hdr;	/* fixed data header */	struct data_blk_100 *blk_100;		/* blockette 100 pointer */	int i;					/*counter */	/* point to beginning data header structure */	input_data_hdr = (struct input_data_hdr *) input_data_ptr;	blk_100 = (struct data_blk_100 *) (input_data_ptr + (input_data_hdr->bofb - 8));/*	printf("data blk next %d\n", blk_100->hdr.next_blk_byte); */	while (blk_100->hdr.next_blk_byte != 0)	{		if (blk_100->hdr.type == 100)		{			*sample_rate = blk_100->sample_rate;			return(1);		}		if ( ((blk_100->hdr.next_blk_byte%4)!=0) ||		     (blk_100->hdr.next_blk_byte < (sizeof(struct input_data_hdr)+8)) )		{			fprintf (stderr, "WARNING (parse_type100):  ");			fprintf (stderr, "invalid byte pointer = %04x, in %.5s,%.3s at %4d,%3d,%2d:%2d:%2d\n",				blk_100->hdr.next_blk_byte, input_data_hdr->station,				input_data_hdr->channel, input_data_hdr->time.year,				input_data_hdr->time.day, input_data_hdr->time.hour,				input_data_hdr->time.minute, input_data_hdr->time.second);			fprintf (stderr, "\tData blockette 100 parsing will be ignored.\n");			fprintf(stderr, "\tfile name: %s\n", fname);			break;		}		blk_100 = (struct data_blk_100 *) (input_data_ptr+(blk_100->hdr.next_blk_byte-8));	}	return(0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本午夜精品视频在线观看| 精品福利二区三区| 一区在线播放视频| 成人高清视频免费观看| 欧美激情在线看| 不卡av在线网| 亚洲欧美另类小说视频| 欧美视频日韩视频在线观看| 午夜天堂影视香蕉久久| 日韩欧美区一区二| 国产一区啦啦啦在线观看| 26uuuu精品一区二区| 国产91清纯白嫩初高中在线观看| 国产精品久久久99| 欧洲色大大久久| 日韩国产高清影视| 久久久精品2019中文字幕之3| 国产成人av自拍| 亚洲精品免费一二三区| 91精品蜜臀在线一区尤物| 久久国产精品色婷婷| 亚洲国产精品精华液2区45| 91蜜桃传媒精品久久久一区二区| 亚瑟在线精品视频| 久久精品一级爱片| 色综合久久久网| 日本不卡的三区四区五区| 中文字幕精品三区| 欧美日韩在线三级| 国产精品一区在线观看你懂的| 18成人在线视频| 欧美一区二区成人6969| 在线播放欧美女士性生活| 激情图区综合网| 亚洲六月丁香色婷婷综合久久| 欧美一级视频精品观看| 成人看片黄a免费看在线| 午夜一区二区三区在线观看| 国产欧美日本一区二区三区| 欧美日本乱大交xxxxx| 成人综合婷婷国产精品久久蜜臀 | 色哟哟国产精品免费观看| 日本亚洲一区二区| 国产精品私人自拍| 欧美高清dvd| 白白色 亚洲乱淫| 麻豆成人av在线| 亚洲国产综合色| 国产精品久久久久久久久免费桃花 | 成人高清av在线| 免费看日韩a级影片| 亚洲欧洲制服丝袜| 久久久综合九色合综国产精品| 欧美视频在线一区| 欧美mv日韩mv| 欧美电影一区二区| 在线亚洲欧美专区二区| 国产成人精品亚洲午夜麻豆| 蜜臀av性久久久久蜜臀av麻豆| 一区二区三区在线观看网站| 国产欧美日韩三级| 精品蜜桃在线看| 91精品久久久久久蜜臀| 欧洲激情一区二区| 色综合久久88色综合天天6 | 精品国产第一区二区三区观看体验| 91麻豆swag| 丁香激情综合国产| 国产寡妇亲子伦一区二区| 日韩成人免费看| 无吗不卡中文字幕| 亚洲第一激情av| 亚洲最新视频在线观看| 综合久久一区二区三区| 国产精品久久久久久久第一福利 | 91福利视频在线| 一本一道久久a久久精品| 99国产精品久久久久久久久久| 国产白丝精品91爽爽久久| 国产成人免费高清| 国产黄色91视频| 国产高清精品久久久久| 国产精品18久久久久久久久久久久| 韩国在线一区二区| 国产一区二区h| 国产成人一区在线| 成人a区在线观看| 久久你懂得1024| 精品999久久久| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 亚洲日本成人在线观看| 亚洲欧洲国产专区| 一区二区三区鲁丝不卡| 亚洲综合免费观看高清完整版| 亚洲国产精品自拍| 五月婷婷激情综合| 美女一区二区三区在线观看| 国产剧情一区在线| 99精品久久免费看蜜臀剧情介绍| 色综合夜色一区| 欧美日本一区二区三区四区| 日韩视频免费观看高清完整版| 精品成人免费观看| 国产精品福利一区二区三区| 亚洲欧美乱综合| 日本欧美在线观看| 国产二区国产一区在线观看| av中文字幕在线不卡| 欧美日韩视频在线观看一区二区三区 | 在线观看亚洲精品| 欧美老女人在线| 久久蜜桃av一区精品变态类天堂| 中文字幕亚洲一区二区va在线| 亚洲另类在线制服丝袜| 天天av天天翘天天综合网色鬼国产 | 蜜臀av国产精品久久久久| 国产精品系列在线播放| 一本色道a无线码一区v| 91.麻豆视频| 中文字幕欧美日韩一区| 亚洲一区二区三区激情| 激情综合网激情| 一本色道a无线码一区v| 欧美精品一区二| 亚洲免费毛片网站| 精品一区二区三区在线播放视频 | 99在线视频精品| 欧美日本不卡视频| 欧美韩国日本一区| 日韩精品国产精品| jiyouzz国产精品久久| 欧美精品日日鲁夜夜添| 美女任你摸久久| 91美女在线看| 国产视频视频一区| 日本成人超碰在线观看| 色综合婷婷久久| 久久综合色一综合色88| 亚洲黄色尤物视频| 成人毛片在线观看| 欧美精品一区男女天堂| 亚洲高清一区二区三区| av影院午夜一区| 久久影视一区二区| 日本欧美一区二区三区乱码| 91视视频在线直接观看在线看网页在线看| 日韩欧美精品三级| 五月激情综合网| 色伊人久久综合中文字幕| 欧美激情一区二区| 国产一区福利在线| 日韩一区二区三区在线观看| 亚洲综合图片区| 99久久精品国产一区二区三区| 精品国产凹凸成av人导航| 图片区小说区国产精品视频| 91久久精品网| 中文字幕亚洲不卡| 成人黄色小视频在线观看| 久久久国产一区二区三区四区小说 | 欧美影视一区在线| 亚洲视频香蕉人妖| 91香蕉视频mp4| 亚洲欧洲精品一区二区三区不卡| 国产不卡免费视频| 亚洲国产电影在线观看| 成人午夜伦理影院| 中国av一区二区三区| 国产91丝袜在线18| 国产精品丝袜黑色高跟| 丰满亚洲少妇av| 国产精品丝袜一区| 91免费视频大全| 亚洲精品中文字幕在线观看| 色成人在线视频| 亚洲午夜激情网站| 欧美精品1区2区3区| 日本免费在线视频不卡一不卡二| 欧美日韩dvd在线观看| 欧美a级理论片| 久久伊人中文字幕| www.久久精品| 一区二区三区四区在线免费观看| 在线免费观看日本一区| 午夜亚洲国产au精品一区二区| 91精品久久久久久蜜臀| 国内精品视频666| 中文字幕国产精品一区二区| 99久久精品国产导航| 怡红院av一区二区三区| 欧美日韩一区二区欧美激情 | 亚洲人xxxx| 在线观看网站黄不卡| 天堂成人国产精品一区| 日韩久久精品一区| 国产一区二区三区观看| 国产精品久久久久久久久久免费看| 91蜜桃网址入口| 另类小说视频一区二区| 国产精品国产精品国产专区不蜜|