00001 #include <stdio.h> 00002 #include <stdlib.h> 00003 #include <string.h> 00004 #ifndef _WIN32 00005 # include <unistd.h> 00006 #endif 00007 #include "utils.h" 00008 00009 int cgfile, cgbase, cgzone, cgcoord; 00010 int size[9]; 00011 00012 #define NUM_SIDE 5 00013 00014 float coord[NUM_SIDE*NUM_SIDE*NUM_SIDE]; 00015 00016 int main (int argc, char **argv) 00017 { 00018 int n, nz, nzones = 50; 00019 double start, finish; 00020 char name[33], linkpath[33]; 00021 char fname[33], linkfile[33]; 00022 00023 for (n = 0; n < 3; n++) { 00024 size[n] = NUM_SIDE; 00025 size[n+3] = NUM_SIDE - 1; 00026 size[n+6] = 0; 00027 } 00028 if (argc > 1) 00029 nzones = atoi (argv[1]); 00030 printf ("number of zones = %d\n", nzones); 00031 00032 for (nz = 1; nz <= nzones; nz++) { 00033 sprintf (fname, "zone%d.cgns", nz); 00034 unlink (fname); 00035 } 00036 00037 printf ("creating zones ..."); 00038 fflush (stdout); 00039 start = elapsed_time (); 00040 for (nz = 1; nz <= nzones; nz++) { 00041 sprintf (fname, "zone%d.cgns", nz); 00042 if (cg_open (fname, CG_MODE_WRITE, &cgfile) || 00043 cg_base_write (cgfile, "Base", 3, 3, &cgbase) || 00044 cg_zone_write (cgfile, cgbase, "Zone", size, Structured, 00045 &cgzone) || 00046 cg_coord_write(cgfile, cgbase, cgzone, RealSingle, 00047 "CoordinateX", coord, &cgcoord) || 00048 cg_coord_write(cgfile, cgbase, cgzone, RealSingle, 00049 "CoordinateY", coord, &cgcoord) || 00050 cg_coord_write(cgfile, cgbase, cgzone, RealSingle, 00051 "CoordinateZ", coord, &cgcoord)) 00052 cg_error_exit(); 00053 if (cg_close(cgfile)) cg_error_exit(); 00054 } 00055 finish = elapsed_time (); 00056 printf (" %g secs\n", finish - start); 00057 00058 strcpy (fname, "links.cgns"); 00059 unlink (fname); 00060 strcpy (linkpath, "/Base/Zone"); 00061 printf ("creating link file ..."); 00062 fflush (stdout); 00063 start = elapsed_time (); 00064 if (cg_open (fname, CG_MODE_WRITE, &cgfile) || 00065 cg_base_write (cgfile, "Base", 3, 3, &cgbase)) 00066 cg_error_exit(); 00067 for (nz = 1; nz <= nzones; nz++) { 00068 sprintf (name, "Zone%d", nz); 00069 sprintf (linkfile, "zone%d.cgns", nz); 00070 if (cg_goto (cgfile, cgbase, "end") || 00071 cg_link_write (name, linkfile, linkpath)) 00072 cg_error_exit(); 00073 } 00074 cg_close (cgfile); 00075 finish = elapsed_time (); 00076 printf (" %g secs\n", finish - start); 00077 printf ("file size = %g Mb\n", file_size(fname)); 00078 00079 printf ("opening link file ..."); 00080 fflush (stdout); 00081 start = elapsed_time (); 00082 if (cg_open (fname, CG_MODE_READ, &cgfile)) cg_error_exit(); 00083 finish = elapsed_time (); 00084 printf (" %g secs\n", finish - start); 00085 cg_close (cgfile); 00086 00087 #if 0 00088 printf ("opening link file ..."); 00089 fflush (stdout); 00090 start = elapsed_time (); 00091 if (cg_open (fname, CG_MODE_READ, &cgfile)) cg_error_exit(); 00092 finish = elapsed_time (); 00093 printf (" %g secs\n", finish - start); 00094 cg_close (cgfile); 00095 #endif 00096 00097 return 0; 00098 } 00099