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