#include #include #include "surferC.h" void datbfile_(double *u, double *v, double *w,double *c, int *nx, int *ny, int *nz, int *t) { int i, j, k, nvar = 1; float val; char s[256]; FILE *fptr; /* Debugging */ /* printf("at beginning of datbfile\n"); */ #ifdef HAVE_MPI sprintf(s, "%s.%d.%d", "plot.datb",*t,*PPRANK); #else sprintf(s, "%s.%d", "plot.datb",*t); #endif fptr = fopen(s, "wb"); fwrite( (char *) &*nx, sizeof(int), 1, fptr); fwrite( (char *) &*ny, sizeof(int), 1, fptr); fwrite( (char *) &*nz, sizeof(int), 1, fptr); fwrite( (char *) &nvar, sizeof(int), 1, fptr); /* To reduce size of datb for large runs , comment out the saving of velocity fields */ if (nvar == 4) { sprintf(s, "u"); fwrite( (char *) s, sizeof(char), 256, fptr); sprintf(s, "v"); fwrite( (char *) s, sizeof(char), 256, fptr); sprintf(s, "w"); fwrite( (char *) s, sizeof(char), 256, fptr); } sprintf(s, "c"); fwrite( (char *) s, sizeof(char), 256, fptr); if (nvar == 4) { for (i = 0; i < *nx; i++) for (j = 0; j < *ny; j++) for (k = 0; k < *nz; k++) { val = u[i + (*nx)*j + (*nx)*(*ny)*k]; fwrite( (char *) &val, sizeof(float), 1, fptr); } for (i = 0; i < *nx; i++) for (j = 0; j < *ny; j++) for (k = 0; k < *nz; k++) { val = v[i + (*nx)*j + (*nx)*(*ny)*k]; fwrite( (char *) &val, sizeof(float), 1, fptr); } for (i = 0; i < *nx; i++) for (j = 0; j < *ny; j++) for (k = 0; k < *nz; k++) { val = w[i + (*nx)*j + (*nx)*(*ny)*k]; fwrite( (char *) &val, sizeof(float), 1, fptr); } } for (i = 0; i < *nx; i++) for (j = 0; j < *ny; j++) for (k = 0; k < *nz; k++) { val = c[i + (*nx)*j + (*nx)*(*ny)*k]; fwrite( (char *) &val, sizeof(float), 1, fptr); } fclose(fptr); }