12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #include <stdlib.h>
- #include <grass/gis.h>
- #include <grass/glocale.h>
- #include "watershed.h"
- int ar_file_in(char *file_name, OUTPUT * output)
- {
- FILE *ar_file;
- int bas_num, down_bas, i1, i2, bas_alloc;
- char s1[7], s2[5], s3[3];
- double northing, easting, str_slope, str_length;
- if ((ar_file = fopen(file_name, "r")) == NULL) {
- G_fatal_error(_("unable to open ARMSED file"));
- }
- output->num_basins = 0;
- bas_alloc = INCR;
- output->basin_facts = (B_FACTS *) G_malloc(INCR * sizeof(B_FACTS));
- while (!feof(ar_file)) {
- fscanf(ar_file, "%d %s %s %d %s %d %d %lf %lf %lf %lf",
- &bas_num, s1, s2, &down_bas, s3, &i1, &i2,
- &easting, &northing, &str_slope, &str_length);
- if (output->num_basins >= bas_alloc) {
- bas_alloc += INCR;
- output->basin_facts =
- (B_FACTS *) G_realloc(output->basin_facts,
- bas_alloc * sizeof(B_FACTS));
- }
- output->basin_facts[output->num_basins].num_cells = 0;
- output->basin_facts[output->num_basins].str_length = str_length;
- output->basin_facts[output->num_basins].str_slope = str_slope;
- output->basin_facts[output->num_basins].easting = easting;
- output->basin_facts[output->num_basins].northing = northing;
- output->basin_facts[output->num_basins].down_basin = down_bas / 2 - 1;
- output->basin_facts[output->num_basins].valid = 1;
- output->num_basins++;
- }
- fclose(ar_file);
- return 0;
- }
|