/*! * \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 #include #include #include #include #include #include /* 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; }