Main Page   Data Structures   File List   Data Fields   Globals  

save.c

Go to the documentation of this file.
00001 /*------------------------------------------------------------------*/
00002 /* SCCS Information: %W%    %G% */
00003 /*------------------------------------------------------------------*/
00004 #include <malloc.h>
00005 #include "utilf.h"
00006 #include "markers.h"
00007 #include "save.h"
00008 #include "inout.h"
00009 
00010 
00011 void iniget(real2D u, real2D v, real2D c, real2D p,
00012             interface **inter,
00013             int *nin,
00014             real *po, real *vo, real *t, real *pext,
00015             real *tau, int nx, int ny, char *fname)
00016 {
00017   int i;
00018   FILE *fptr;
00019   
00020   if (!(fptr = fopen(fname, "rb"))) {
00021     printf("iniget: can not open file `%s'\n", fname);
00022     exit(1);
00023   }
00024   fread(&(u[1][1]), sizeof(real), (nx + 1) * ny, fptr);
00025   fread(&(v[1][1]), sizeof(real), nx * (ny + 1), fptr);
00026   fread(&(c[1][1]), sizeof(real), nx * ny, fptr);     
00027   fread(&(p[1][1]), sizeof(real), nx * ny, fptr);
00028   fread(nin, sizeof(int), 1, fptr);
00029   *inter = (interface *)malloc(sizeof(interface) * *nin);
00030   for (i = 0; i < *nin; i++) {
00031     fread(&((*inter)[i].n), sizeof(int), 1, fptr);
00032     printf("%d: %d markers\n", i, (*inter)[i].n);
00033     (*inter)[i].x = (real *)malloc((*inter)[i].n * sizeof(real));
00034     (*inter)[i].y = (real *)malloc((*inter)[i].n * sizeof(real));
00035     (*inter)[i].t = (real *)malloc((*inter)[i].n * sizeof(real));
00036     (*inter)[i].spx = (polynom3 *)malloc(((*inter)[i].n - 1) 
00037                                          * sizeof(polynom3));
00038     (*inter)[i].spy = (polynom3 *)malloc(((*inter)[i].n - 1) 
00039                                          * sizeof(polynom3));
00040     fread((*inter)[i].x, sizeof(real), (*inter)[i].n, fptr);
00041     fread((*inter)[i].y, sizeof(real), (*inter)[i].n, fptr);
00042     fread(&((*inter[i]).bc), sizeof(char), 1, fptr);
00043   }
00044   fread(po, sizeof(real), 1, fptr);
00045   fread(vo, sizeof(real), 1, fptr);
00046   fread(t, sizeof(real), 1, fptr);
00047   fread(pext, sizeof(real), 1, fptr);
00048   fread(tau, sizeof(real), 1, fptr);
00049   fclose(fptr);
00050 }
00051 
00052 
00053 void save(real2D u, real2D v, real2D c, real2D p,
00054           interface *inter, int nin,
00055           real po, real vo, real t, real pext,
00056           real tau, int nx, int ny, char *fname)
00057 {
00058   int i;
00059   FILE *fptr;
00060   
00061   if (!(fptr = fopen(fname, "wb"))) {
00062     printf("save: can not open file `%s'\n", fname);
00063     exit(1);
00064   }
00065   fwrite(&(u[1][1]), sizeof(real), (nx + 1) * ny, fptr);
00066   fwrite(&(v[1][1]), sizeof(real), nx * (ny + 1), fptr);
00067   fwrite(&(c[1][1]), sizeof(real), nx * ny, fptr);
00068   fwrite(&(p[1][1]), sizeof(real), nx * ny, fptr);
00069   fwrite(&nin, sizeof(int), 1, fptr);
00070   for (i = 0; i < nin; i++) {
00071     fwrite(&(inter[i].n), sizeof(int), 1, fptr);
00072     fwrite(inter[i].x, sizeof(real), inter[i].n, fptr);
00073     fwrite(inter[i].y, sizeof(real), inter[i].n, fptr);
00074     fwrite(&(inter[i].bc), sizeof(char), 1, fptr);    
00075   }
00076   fwrite(&po, sizeof(real), 1, fptr);
00077   fwrite(&vo, sizeof(real), 1, fptr);
00078   fwrite(&t, sizeof(real), 1, fptr);
00079   fwrite(&pext, sizeof(real), 1, fptr);
00080   fwrite(&tau, sizeof(real), 1, fptr);
00081   fclose(fptr);
00082 }
00083 
00084 
00085 
00086 
00087 
00088 

Generated on Wed Feb 19 22:26:51 2003 for Markers by doxygen1.2.18