GRASS 8 Programmer's Manual 8.6.0dev(2026)-4bb960b182
Loading...
Searching...
No Matches
write2d.c
Go to the documentation of this file.
1/*!
2 * \file secpar2d.c
3 *
4 * \author H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993 (original authors)
5 * \author modified by McCauley in August 1995
6 * \author modified by Mitasova in August 1995
7 * \author H. Mitasova (University of Illinois)
8 * \author I. Kosinovsky, (USA-CERL)
9 * \author D.Gerdes (USA-CERL)
10 *
11 * SPDX-FileCopyrightText: 1993-1995 Helena Mitasova
12 * SPDX-FileCopyrightText: GRASS Development Team
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 */
15
16#include <grass/config.h>
17#include <stdio.h>
18#include <math.h>
19#include <unistd.h>
20
21#include <grass/gis.h>
22#include <grass/glocale.h>
23#include <grass/interpf.h>
24
25/* parameter descriptions takes from a strange comment */
26/*!
27 * Writes az,adx,...,adxy into appropriate place (depending on ngstc, nszc
28 * and offset) in corresponding temp file
29 */
31 int ngstc, /*!< begin. column */
32 int nszc, /*!< end. column */
33 off_t offset2 /*!< offset */
34)
35{
36 int j;
37 static FCELL *array_cell = NULL;
38
39 if (!array_cell)
40 array_cell = G_malloc(sizeof(FCELL) * params->nsizc + 1);
41 if (params->Tmp_fd_z != NULL) {
42 for (j = ngstc; j <= nszc; j++)
43 array_cell[j - 1] = (FCELL)params->az[j];
45 if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
46 params->Tmp_fd_z))
47 G_fatal_error(_("Cannot write files"));
48 }
49 if (params->Tmp_fd_dx != NULL) {
50 for (j = ngstc; j <= nszc; j++)
51 if (!params->deriv)
52 array_cell[j - 1] = (FCELL)params->adx[j];
53 else
54 array_cell[j - 1] = (FCELL)(params->adx[j] * params->scik1);
56 if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
57 params->Tmp_fd_dx))
58 G_fatal_error(_("Cannot write files"));
59 }
60 if (params->Tmp_fd_dy != NULL) {
61 for (j = ngstc; j <= nszc; j++) {
62 if (!params->deriv) {
63 if (params->ady[j] > 0. && params->ady[j] < 0.5)
64 params->ady[j] = 360.;
65 array_cell[j - 1] = (FCELL)params->ady[j];
66 }
67 else
68 array_cell[j - 1] = (FCELL)(params->ady[j] * params->scik1);
69 }
71 if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
72 params->Tmp_fd_dy))
73 G_fatal_error(_("Cannot write files"));
74 }
75 if (params->Tmp_fd_xx != NULL) {
76 for (j = ngstc; j <= nszc; j++) {
77 array_cell[j - 1] = (FCELL)(params->adxx[j] * params->scik1);
78 }
80 if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
81 params->Tmp_fd_xx))
82 G_fatal_error(_("Cannot write files"));
83 }
84 if (params->Tmp_fd_yy != NULL) {
85 for (j = ngstc; j <= nszc; j++)
86 array_cell[j - 1] = (FCELL)(params->adyy[j] * params->scik2);
88 if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
89 params->Tmp_fd_yy))
90 G_fatal_error(_("Cannot write files"));
91 }
92 if (params->Tmp_fd_xy != NULL) {
93 for (j = ngstc; j <= nszc; j++)
94 array_cell[j - 1] = (FCELL)(params->adxy[j] * params->scik3);
96 if (!fwrite(array_cell + ngstc - 1, sizeof(FCELL), nszc - ngstc + 1,
97 params->Tmp_fd_xy))
98 G_fatal_error(_("Cannot write files"));
99 }
100 return 1;
101}
#define NULL
Definition ccmath.h:32
void void void void G_fatal_error(const char *,...) __attribute__((format(printf
#define G_malloc(n)
Definition defs/gis.h:136
void G_fseek(FILE *, off_t, int)
Change the file position of the stream.
Definition gis/seek.c:48
float FCELL
Definition gis.h:633
#define _(str)
Definition glocale.h:10
FILE * Tmp_fd_xx
Definition interpf.h:123
FILE * Tmp_fd_xy
Definition interpf.h:123
DCELL * az
Definition interpf.h:94
FILE * Tmp_fd_yy
Definition interpf.h:123
DCELL * adxy
Definition interpf.h:94
FILE * Tmp_fd_dx
Definition interpf.h:123
DCELL * adyy
Definition interpf.h:94
DCELL * adx
Definition interpf.h:94
FILE * Tmp_fd_z
Definition interpf.h:123
DCELL * ady
Definition interpf.h:94
FILE * Tmp_fd_dy
Definition interpf.h:123
DCELL * adxx
Definition interpf.h:94
int IL_write_temp_2d(struct interp_params *params, int ngstc, int nszc, off_t offset2)
Definition write2d.c:30