Source

#include <errno.h>
#include <stdio.h>
#include "atoms.h"
#include "header.h"

int main(int argc, char** argv)
{
  Headerinfo tempheader;
  Atom tempatom;
 FILE* file1;
 FILE* file2;
 int i,j,k;
 char buffer[255];

 if(argc < 2)
 {
         printf("no infile specified\n\n");
         return 0;
 }

 for(k=1; k<argc; k++)
 {
         file1 = fopen(argv[k], "rb");

         if(file1 == NULL)
         {
                 printf("failed to open infile %s for reading\n\n", argv[k]);
                 return errno;
         }
         
         printf("using infile %s\n\n", argv[k]);

         j = (int)fread(&tempheader, sizeof(Headerinfo), 1, file1);

         if(j < 1)
         {
                 printf("error reading header from infile\n\n");
                 return 0;
         }

         sprintf(buffer, "%s.hr", argv[k]);

         file2 = fopen(buffer, "w");

         fprintf(file2, "iterations remaining = %d\n", tempheader.iterations);
         fprintf(file2, "minimum cutoff distance = %e\n", tempheader.mincutoff);
         fprintf(file2, "delta time = %e\n", tempheader.dt);
         fprintf(file2, "system x size = %e\n", tempheader.bigX);
         fprintf(file2, "system y size = %e\n", tempheader.bigY);
         fprintf(file2, "system z size = %e\n", tempheader.bigZ);
         fprintf(file2, "number of atoms = %d\n", tempheader.numatoms);
         fprintf(file2, "\n");

         for(i=0; i<tempheader.numatoms; i++)
         {
                 j = (int)fread(&tempatom, sizeof(Atom), 1, file1);

                 if(j < 1)
                 {
                         printf("error reading atom %d from infile\n\n", i);
                         return 0;
                 }

                 fprintf(file2, "Atom #%d\n", i);
                 fprintf(file2, "type = %s\n", elements[tempatom.type].symbol);
                 fprintf(file2, "position = <%e, %e, %e>\n", tempatom.x, tempatom.y, tempatom.z);
                 fprintf(file2, "velocity = <%e, %e, %e>\n", tempatom.vx, tempatom.vy, tempatom.vz);
                 fprintf(file2, "potential = %e\n", tempatom.potential);
                 fprintf(file2, "\n");
         }

         fclose(file2);
         fclose(file1);
 }

 return 1;
}