REPORTER 22.1

C Program/Script

C program/script

C/C++
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_LEN 257

int main(int argc, char *argv[])
{
char line[MAX_LEN], *ptr;
int c, i, l, n = 5;
float t, tmin;
FILE *fp;
if (argc < 2)
{
printf("No otf filename\n");
exit(0);
}
if ( (fp = fopen(argv[1], "r")) == NULL)
{
printf("Cannot open otf file %s\n", argv[1]);
exit(0);
}
while (fgets(line, MAX_LEN, fp))
{
if (strstr(line, "smallest timesteps"))
{
sscanf(line, "%d", &n);
if (n > 5) n = 5;
tmin = 1.0e+20;
fgets(line, MAX_LEN, fp);
fgets(line, MAX_LEN, fp);
for (i=0; i<n; i++)
{
fgets(line, MAX_LEN, fp);
printf ("%s", line);
/* Remove any trailing characters */
l = strlen(line) - 1;
while ( (c = line[l]) == ' ' || c=='\n' || c=='\r' || c=='\t')
l--;
line[l+1] = '\0';
/* Find start of number */
l = strlen(line) - 1;
while ( (c = line[l]) != ' ')
l--;
ptr = &line[l];
sscanf(ptr, "%e", &t);
if (t < tmin)
tmin = t;
}
printf ("VAR TIMESTEP VALUE=\"%e\"\n", tmin);
exit(0);
}
}
fclose(fp);
}