123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- /*!
- * \file secpar2d.c
- *
- * \author H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993 (original authors)
- * \author modified by McCauley in August 1995
- * \author modified by Mitasova in August 1995
- * \author H. Mitasova (University of Illinois)
- * \author I. Kosinovsky, (USA-CERL)
- * \author D.Gerdes (USA-CERL)
- *
- * \copyright
- * (C) 1993-1995 by Helena Mitasova and the GRASS Development Team
- *
- * \copyright
- * This program is free software under the
- * GNU General Public License (>=v2).
- * Read the file COPYING that comes with GRASS for details.
- */
- #include <grass/config.h>
- #include <stdio.h>
- #include <math.h>
- #include <unistd.h>
- #include <grass/gis.h>
- #include <grass/glocale.h>
- #include <grass/interpf.h>
- /* parameter descriptions takes from a strange comment */
- /*!
- * Writes az,adx,...,adxy into appropriate place (depending on ngstc, nszc
- * and offset) in corresponding temp file
- */
- int IL_write_temp_2d(struct interp_params *params,
- int ngstc, /*!< begin. column */
- int nszc, /*!< end. column */
- off_t offset2 /*!< offset */
- )
- {
- int j;
- static FCELL *array_cell = NULL;
- if (!array_cell)
- array_cell = G_malloc(sizeof(FCELL) * params->nsizc + 1);
- if (params->Tmp_fd_z != NULL) {
- for (j = ngstc; j <= nszc; j++)
- array_cell[j - 1] = (FCELL) params->az[j];
- G_fseek(params->Tmp_fd_z, offset2, SEEK_SET);
- if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
- params->Tmp_fd_z))
- G_fatal_error(_("Cannot write files"));
- }
- if (params->Tmp_fd_dx != NULL) {
- for (j = ngstc; j <= nszc; j++)
- if (!params->deriv)
- array_cell[j - 1] = (FCELL) params->adx[j];
- else
- array_cell[j - 1] = (FCELL) (params->adx[j] * params->scik1);
- G_fseek(params->Tmp_fd_dx, offset2, SEEK_SET);
- if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
- params->Tmp_fd_dx))
- G_fatal_error(_("Cannot write files"));
- }
- if (params->Tmp_fd_dy != NULL) {
- for (j = ngstc; j <= nszc; j++) {
- if (!params->deriv) {
- if (params->ady[j] > 0. && params->ady[j] < 0.5)
- params->ady[j] = 360.;
- array_cell[j - 1] = (FCELL) params->ady[j];
- }
- else
- array_cell[j - 1] = (FCELL) (params->ady[j] * params->scik1);
- }
- G_fseek(params->Tmp_fd_dy, offset2, SEEK_SET);
- if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
- params->Tmp_fd_dy))
- G_fatal_error(_("Cannot write files"));
- }
- if (params->Tmp_fd_xx != NULL) {
- for (j = ngstc; j <= nszc; j++) {
- array_cell[j - 1] = (FCELL) (params->adxx[j] * params->scik1);
- }
- G_fseek(params->Tmp_fd_xx, offset2, SEEK_SET);
- if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
- params->Tmp_fd_xx))
- G_fatal_error(_("Cannot write files"));
- }
- if (params->Tmp_fd_yy != NULL) {
- for (j = ngstc; j <= nszc; j++)
- array_cell[j - 1] = (FCELL) (params->adyy[j] * params->scik2);
- G_fseek(params->Tmp_fd_yy, offset2, SEEK_SET);
- if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
- params->Tmp_fd_yy))
- G_fatal_error(_("Cannot write files"));
- }
- if (params->Tmp_fd_xy != NULL) {
- for (j = ngstc; j <= nszc; j++)
- array_cell[j - 1] = (FCELL) (params->adxy[j] * params->scik3);
- G_fseek(params->Tmp_fd_xy, offset2, SEEK_SET);
- if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
- params->Tmp_fd_xy))
- G_fatal_error(_("Cannot write files"));
- }
- return 1;
- }
|