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

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

?? merger.c

?? 用于2維的射線追蹤
?? C
字號:
/* * Ray2mesh : software for geophysicists. * Compute various scores attached to the mesh cells, based on geometric   information that rays bring when they traverse cells. * * Copyright (C) 2003, St閜hane Genaud and Marc Grunberg * * This tool is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public * License as published by the Free Software Foundation; either * version 2 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU * Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <stdlib.h>#include <string.h>#include <unistd.h>#include <popt.h>#include "ray2mesh.h"#include "r2mfile.h"#include "score.h"#include <sparse/sparse.h>#include <mesh/mesh.h>#include <mesh/cellinfo.h>#include <mesh/import.h>#include <mesh/mesh2xml.h>void parse_command_line(int argc,			char **argv,			char **import_arg,			char **mesh_arg, char **output_arg, 			int *do_sco, int *do_sparse,			int *first_layer, int *last_layer){    static char *import_arg_opt;    static char *mesh_arg_opt;    static char *output_arg_opt;    static int begin_layer=-1;    static int end_layer=-1;    int rc;    poptContext mcx;    enum options {	OPT_ZERO=0,			/* must be 0 */	OPT_HELP,	OPT_MESHFILE,	OPT_IMPORT,	OPT_OUTPUT,	OPT_DO_SCO,	OPT_DO_SPARSE,	OPT_BEGIN_LAYER,        OPT_END_LAYER,	OPT_VERSION    };    const struct poptOption options[] = {	{"help", 'h', POPT_ARG_NONE,	 NULL, OPT_HELP,	 "help", "display this help message"},	{"version", 'v', POPT_ARG_NONE,	 NULL, OPT_VERSION,	 "print version number", NULL},	{"meshfile", 'm', POPT_ARG_STRING,	 &mesh_arg_opt, OPT_MESHFILE,	 "mesh file (xml)", "FILE"},	{"input", 'i', POPT_ARG_STRING,	 &import_arg_opt, OPT_IMPORT,	 "xml files to import (coma separated list)", "FILE"},	{"output", 'o', POPT_ARG_STRING,	 &output_arg_opt, OPT_OUTPUT,	 "output basename", "STRING"},	{"sparse", '\0', POPT_ARG_NONE,	 NULL, OPT_DO_SPARSE,	 "produced sparse file", NULL},	{"sco", '\0', POPT_ARG_NONE,	 NULL, OPT_DO_SCO,	 "produced sco file", NULL},	{"begin-layer", 'b', POPT_ARG_INT, 	 &begin_layer, OPT_BEGIN_LAYER,         "Layer number to begin from", "INT (>=0)"},        {"end-layer", 'e', POPT_ARG_INT,         &end_layer, OPT_END_LAYER,         "Layer number to end at", "INT (>=0)"},	{NULL, '\0', 0, NULL, 0}	/* end the list */    };    /* args parsing using popt */    mcx = poptGetContext("merger", argc, (const char **) argv, options, 0);    if (argc == 1) {	poptPrintUsage(mcx, stdout, 0);	exit(1);    }    do {	rc = poptGetNextOpt(mcx);	switch (rc) {	case OPT_HELP:	    poptPrintHelp(mcx, stdout, 0);	    exit(0);	case OPT_MESHFILE:	    *mesh_arg = mesh_arg_opt;	    break;	case OPT_IMPORT:	    *import_arg = import_arg_opt;	    break;	case OPT_OUTPUT:	    *output_arg = output_arg_opt;	    break;	case OPT_DO_SPARSE:	    *do_sparse = 1;	    break;	case OPT_DO_SCO:	    *do_sco = 1;	    break;	case OPT_VERSION:	    printf("merger from %s-%s\n", PACKAGE, VERSION);	    exit(0);	    break;	case POPT_ERROR_BADOPT:	/* error */	    fprintf(stderr, "%s: %s\n", poptBadOption(mcx, 0),		    poptStrerror(rc));	    poptPrintUsage(mcx, stdout, 0);	    exit(1);	}    }    while (rc > 0);    poptFreeContext(mcx);    /* check mesh file */    if (!mesh_arg_opt) {	fprintf(stderr, "missing -m option\n");	exit(1);    } else {	if (access(mesh_arg_opt, R_OK)) {	    perror(mesh_arg_opt);	    exit(1);	}    }    if (!output_arg_opt) {	fprintf(stderr, "basename for output file is not defined !\n");	exit(1);    }    *first_layer = begin_layer;    *last_layer = end_layer;}/** brief create a sparse file from a cellinfo array  **/int merger_write_sparse (char *sparse_file, 			 struct cell_info_t ****c, 			 struct mesh_t *m, 			 long int max_ray_id) {    int i;    int x, y, z;    int nb_lat_cell, nb_lon_cell;  /* number of cells in latitude/longitude */    int nb_cells = 0;    struct cell_info_t *ci;    long int lincellid;    struct sparse_matrix_t *A;    struct coord_z3_t cell_id;        A = new_sparse_matrix( max_ray_id + 1, m->ncells, !SPARSE_COL_LINK);    fprintf(stdout, "new sparse matrix initialized (%ldx%ld) ...",	    max_ray_id + 1, m->ncells);    for (z = 0; z < m->nlayers; z++) {        nb_lat_cell = m->layer[z]->nlat;        nb_lon_cell = m->layer[z]->nlon;        for (x = 0; x < nb_lat_cell; x++) {            for (y = 0; y < nb_lon_cell; y++) {                if (c[z][x][y] && c[z][x][y]->nitems) {                    /* allocated cells with nitems=0 are orphan -> ignored */		    ci = c[z][x][y];		    cell_id.x=x; cell_id.y=y; cell_id.z=z;                    nb_cells++;		    /* cellid of the cell in the global mesh */        	    lincellid = linearize_cell_id(&cell_id, m);			    		    for (i = 0; i < c[z][x][y]->nitems; i++) {			sparse_set_value(A, ci->item[i].rayid,					 lincellid, 					 ci->item[i].P_length, NULL);		    }                }            }        }    }    fprintf(stdout, "filled (%.3f%%).\n", 100 * (double)A->nb_item/((double)A->nb_line*(double)A->nb_col));    /* save the sparse matrix to file */    write_sparse_matrix(A, sparse_file);    free_sparse_matrix(A);    return(nb_cells);}/*----------------------------------------------------------------------*//* main (merger utility)                                                *//*----------------------------------------------------------------------*/int main(int argc, char **argv){    int buffsize;    struct cell_info_t ****c; 		/**< the light mesh to aggregrate data into */    struct mesh_t *mesh;      		/**< the corresponding mesh description */    struct mesh_t *imported_mesh = NULL;/**< meshes to import */    char *mesh_file = NULL;    char *importfilename = NULL;    char **xmlfilelist = NULL;    int nb_xmlfile = 0;    char *buff;    char *output_arg;        char *xml_output;    char *r2m_file=NULL;    char *sco_file=NULL;    char *sparse_file=NULL;    int i;    int nb_cell;    int section;    int first_layer, last_layer;    int do_sco=0;    int do_sparse=0;    long int max_ray_id;/* mac osx workaround to compile with lam */ #ifdef USE_MPI    int a =0;    if (a) MPI_Init();#endif    parse_command_line(argc, argv, 		       &importfilename, &mesh_file, &output_arg, 		       &do_sco, &do_sparse,		       &first_layer, &last_layer);    /**************************************/    /* test if we can open file to import */    /**************************************/    if (importfilename) {	xmlfilelist = parse_separated_list(importfilename, ",");	nb_xmlfile = 0;	while (xmlfilelist[nb_xmlfile]) {	    if (access(xmlfilelist[nb_xmlfile], R_OK) == -1) {		perror(xmlfilelist[nb_xmlfile]);		exit(1);	    }	    nb_xmlfile++;	}    } else {	fprintf(stderr, "No file to import ... exiting\n");	exit(0);    }    /****************************/    /* main mesh initialization */    /****************************/    mesh = mesh_init_from_file(mesh_file);    assert(mesh);    c = mesh_cellinfo_alloc(mesh);    assert(c);    /* layer filter */    if (first_layer == -1) { 	first_layer = 0;    }    if (last_layer == -1) { 	last_layer = mesh->nlayers-1;    }    if (first_layer > last_layer) {       fprintf(stderr, "error, check your layer ID !\n");       exit(0);    }    fprintf (stdout, "Working on layers %d to %d\n",  		    first_layer, last_layer);    if (first_layer < 0 || first_layer > mesh->nlayers-1) {       fprintf(stderr, "first layer is out of range [%d,%d]\n", 0, 		       mesh->nlayers-1);       exit(0);    }    if (last_layer < 0 ||last_layer > mesh->nlayers-1) {       fprintf(stderr, "last layer is out of range [%d,%d]\n", 0, 		       mesh->nlayers-1);       exit(0);    }        /***************************/    /* slice importation stuff */    /***************************/    /* clean all xml section in the global mesh */    for (section=0; section < NB_MESH_FILE_FORMAT; section++) {    	mesh_remove_data_entry(mesh, section);    }    for (i = 0; i < nb_xmlfile; i++) {	int j,l;	char data_file[256];        struct mesh_offset_t **offset;        imported_mesh = mesh_init_from_file(xmlfilelist[i]);	offset = compute_mesh_offset(mesh, imported_mesh);	for (l=0; l<mesh->nlayers; l++) {		if (offset[l]->lat !=0 || offset[l]->lon !=0 || offset[l]->z !=0) {			fprintf(stderr, "Incompatibles meshes used %s/%s in layer %d\n", 				mesh_file, xmlfilelist[i], l);			exit(1);		}                if (offset[l]) free(offset[l]);        }	free(offset);	/* copy EVT and RES section in the global mesh */	for (j = 0; j < imported_mesh->data[EVT]->ndatafile; j++) {	    mesh_add_data_filename(mesh, EVT, 			    imported_mesh->data[EVT]->filename[j]);	}	for (j = 0; j < imported_mesh->data[RES]->ndatafile; j++) {	    mesh_add_data_filename(mesh, RES, 			    imported_mesh->data[RES]->filename[j]);	}	/* import data */	for (j = 0; j < imported_mesh->data[R2M]->ndatafile; j++) {	    snprintf(data_file, 256, "%s/%s",		     imported_mesh->data[R2M]->directory,		     imported_mesh->data[R2M]->filename[j]);	    fprintf(stdout, "loading %s into memory ... ", data_file);	    fflush(stdout);	    buff = load_file_to_memory(data_file, &buffsize);	    if (!buff) {		    exit(1);	    }	    nb_cell = import_cell_buffer(c, buff, buffsize, 			    		  first_layer, last_layer, 					  0, 0);	    fprintf(stdout, "size %d, imported %d cells\n", buffsize,		    nb_cell);	    fflush(stdout);	    unload_file_from_memory(buff, buffsize);	}	free(xmlfilelist[i]);	free_mesh(imported_mesh);    }    free(xmlfilelist);    /************/    /* sco file */    /************/    if (do_sco) {       sco_file = (char *) 	    malloc((strlen(output_arg) + strlen(".sco") + 1 ) * sizeof(char));       assert(sco_file);       sprintf(sco_file, "%s.sco", output_arg);       fprintf(stdout, "Writing merged file to %s ... ", sco_file);       fflush(stdout);       compute_score (c, mesh);       nb_cell = mesh_cellinfo_write_sco (sco_file, c, mesh);       fprintf(stdout, "%d cells.\n", nb_cell);    }    /***************/    /* sparse file */    /***************/    if (do_sparse) {       sparse_file = (char *) 	    malloc((strlen(output_arg) + strlen(".sparse") + 1 )*sizeof(char));       assert(sparse_file);       sprintf(sparse_file, "%s.sparse", output_arg);       fprintf(stdout, "Writing merged file to %s ... ", sparse_file);       fflush(stdout);       /* find the max ray id         * FIXE-ME : doesn't work with -b and -e options 	*/       max_ray_id =  mesh_cellinfo_get_max_rayid (c, mesh);       fprintf(stderr, "max_ray_id = %ld\n", max_ray_id);       nb_cell = merger_write_sparse (sparse_file, c, mesh, max_ray_id);       fprintf(stdout, "%d cells.\n", nb_cell);    }    /*****************/    /* r2m file name */    /*****************/    r2m_file = (char *) 	    malloc((strlen(output_arg) + strlen(".r2m") + 1 ) * sizeof(char));    assert(r2m_file);    sprintf(r2m_file, "%s.r2m", output_arg);    /* Write the merged r2m file */    fprintf(stdout, "Writing merged file to %s ... ", r2m_file);    fflush(stdout);    nb_cell = make_domain_info_file(r2m_file, c, mesh, 0, 1, 0);    fprintf(stdout, "%d cells.\n", nb_cell);        /*****************/    /* xml file name */    /*****************/    xml_output = (char *) 	    malloc((strlen(output_arg) + strlen(".xml") + 1 ) * sizeof(char));    assert(xml_output);    sprintf(xml_output, "%s.xml", output_arg);    /* add R2M section in the xml */    if (r2m_file) mesh_add_data_filename(mesh, R2M, r2m_file);    if (sco_file) mesh_add_data_filename(mesh, SCO, sco_file);    if (sparse_file) mesh_add_data_filename(mesh, SPARSE, sparse_file);    /* write new xml */    mesh2xml(mesh, xml_output);    free(xml_output);    free_mesh (mesh);    free(sco_file);    free(r2m_file);    free(sparse_file);    return (0);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女一区二区久久| 精品成a人在线观看| 国产九色精品成人porny| 欧美一区二区三区免费大片| 日韩电影在线免费| 欧美成人一级视频| 国产激情一区二区三区四区 | 日本视频免费一区| 91精品久久久久久久99蜜桃| 美洲天堂一区二卡三卡四卡视频| 欧美大片顶级少妇| 国产一区二区剧情av在线| 久久久99久久精品欧美| 成人国产精品视频| 亚洲高清在线视频| 精品国产一区二区在线观看| 粗大黑人巨茎大战欧美成人| 一区二区三区四区乱视频| 69堂精品视频| 福利电影一区二区| 亚洲自拍偷拍综合| 337p日本欧洲亚洲大胆精品| 成人久久久精品乱码一区二区三区| 亚洲乱码中文字幕综合| 日韩欧美中文一区二区| 成人一区二区三区视频在线观看| 一区二区三区中文免费| 精品国产制服丝袜高跟| 日本韩国欧美在线| 国产中文字幕一区| 亚洲精品成人精品456| 日韩你懂的电影在线观看| 成人av综合一区| 亚洲超碰97人人做人人爱| 久久人人爽人人爽| 日本精品视频一区二区| 激情六月婷婷久久| 亚洲国产精品久久不卡毛片| 国产午夜一区二区三区| 欧美日韩久久一区二区| 国产电影一区二区三区| 日韩精品电影在线| 中文字幕中文字幕中文字幕亚洲无线 | 国产真实乱子伦精品视频| 亚洲欧洲av在线| 日韩亚洲欧美一区二区三区| 99精品欧美一区二区三区小说| 奇米影视在线99精品| 亚洲一区二区欧美日韩| 国产精品你懂的在线欣赏| 日韩一二在线观看| 色嗨嗨av一区二区三区| 粉嫩av一区二区三区在线播放| 日韩国产精品久久久| 亚洲精品中文在线观看| 国产精品护士白丝一区av| 精品成a人在线观看| 欧美一区二区精品久久911| 欧美三级韩国三级日本三斤| 色综合久久天天| 国产不卡视频一区| 国产一区二区三区在线看麻豆| 日韩激情视频网站| 亚洲国产一二三| 亚洲欧美日韩一区| 国产精品成人网| 国产精品丝袜黑色高跟| 欧美精品一区二区三区很污很色的 | 欧美一区二区三区在线视频| 欧美曰成人黄网| 91视视频在线直接观看在线看网页在线看| 久久国产麻豆精品| 久久国产人妖系列| 国内精品久久久久影院一蜜桃| 视频一区欧美日韩| 丝袜国产日韩另类美女| 亚洲福利视频一区| 亚洲成人第一页| 亚洲成av人片| 日韩va欧美va亚洲va久久| 日韩精品一级中文字幕精品视频免费观看 | 日韩免费看网站| 欧美刺激午夜性久久久久久久| 日韩欧美亚洲国产另类| 日韩精品一区二区在线| 精品女同一区二区| 国产视频一区二区在线| 亚洲国产高清不卡| 国产精品久久久久久福利一牛影视 | 日本午夜一区二区| 九一九一国产精品| 国产精一品亚洲二区在线视频| 国产成人在线看| 不卡av电影在线播放| 99re视频这里只有精品| 色综合久久天天综合网| 欧美猛男超大videosgay| 91精品蜜臀在线一区尤物| 亚洲精品一区二区三区福利| 国产亚洲成av人在线观看导航 | 国产成人免费在线观看| av中文一区二区三区| 91成人免费电影| 91精品国产手机| 久久女同互慰一区二区三区| 中文字幕一区av| 亚洲成年人影院| 精品一区二区三区视频| 菠萝蜜视频在线观看一区| 欧美日韩一区二区欧美激情 | 在线观看日韩电影| 欧美一区二区播放| 中文字幕高清一区| 一区二区国产盗摄色噜噜| 黄色日韩三级电影| 91猫先生在线| 日韩免费视频线观看| 亚洲欧洲国产专区| 蜜乳av一区二区| 97久久人人超碰| 精品国产电影一区二区| 亚洲精品一二三| 国产精品一区二区久久不卡 | 7777精品伊人久久久大香线蕉经典版下载 | 99久久99久久精品免费观看| 欧美日韩国产123区| 欧美国产一区二区| 石原莉奈在线亚洲二区| 成人综合婷婷国产精品久久| 欧美色综合网站| 欧美国产日本视频| 视频一区在线播放| 99久久综合色| 欧美精品一区二区在线播放| 一区二区三区在线免费| 国产精品一二一区| 在线综合亚洲欧美在线视频| 亚洲精品综合在线| 福利一区二区在线| 精品久久久久久亚洲综合网| 五月婷婷欧美视频| 色哟哟在线观看一区二区三区| 2014亚洲片线观看视频免费| 日韩精品三区四区| 色婷婷精品久久二区二区蜜臀av| 久久九九国产精品| 久久国产精品99久久久久久老狼| 欧美综合色免费| 中文字幕字幕中文在线中不卡视频| 国产乱国产乱300精品| 日韩欧美国产成人一区二区| 婷婷开心激情综合| 欧美亚洲自拍偷拍| 亚洲精品福利视频网站| 成人av免费在线观看| 久久久不卡网国产精品二区| 久久99精品国产麻豆不卡| 5858s免费视频成人| 亚洲成a人v欧美综合天堂| 在线观看91精品国产入口| 椎名由奈av一区二区三区| av网站免费线看精品| 亚洲欧洲国产日本综合| jlzzjlzz亚洲日本少妇| 国产目拍亚洲精品99久久精品 | 91亚洲资源网| 中文字幕亚洲一区二区av在线| 国产成人综合亚洲91猫咪| 国产欧美日韩另类一区| 国产很黄免费观看久久| 国产亚洲短视频| 国产成人免费在线观看| 国产精品萝li| 91免费看片在线观看| 亚洲一二三四区不卡| 欧美日韩精品一区二区三区蜜桃| 香蕉成人伊视频在线观看| 91麻豆精品国产91久久久资源速度| 亚洲午夜久久久久中文字幕久| 欧美日韩国产首页| 日本va欧美va精品发布| 欧美成人精品1314www| 国产老妇另类xxxxx| 国产精品剧情在线亚洲| 欧洲亚洲精品在线| 五月婷婷久久综合| 精品国产乱码久久久久久夜甘婷婷 | 欧美一区二区三区在线| 免费观看30秒视频久久| 久久在线观看免费| 成人网页在线观看| 一区二区三区鲁丝不卡| 91精品国产综合久久精品性色| 精品一区二区成人精品| 国产精品久久免费看| 欧美日韩一区成人| 国产中文字幕精品| 亚洲人成小说网站色在线 | 欧美大胆人体bbbb| 成人精品鲁一区一区二区|