GRASS 8 Programmer's Manual
8.6.0dev(2026)-ddeab64dbf
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
* \copyright
12
* (C) 1993-1995 by Helena Mitasova and the GRASS Development Team
13
*
14
* \copyright
15
* This program is free software under the
16
* GNU General Public License (>=v2).
17
* Read the file COPYING that comes with GRASS for details.
18
*/
19
20
#include <
grass/config.h
>
21
#include <
stdio.h
>
22
#include <math.h>
23
#include <
unistd.h
>
24
25
#include <
grass/gis.h
>
26
#include <
grass/glocale.h
>
27
#include <grass/interpf.h>
28
29
/* parameter descriptions takes from a strange comment */
30
/*!
31
* Writes az,adx,...,adxy into appropriate place (depending on ngstc, nszc
32
* and offset) in corresponding temp file
33
*/
34
int
IL_write_temp_2d
(
struct
interp_params
*params,
35
int
ngstc
,
/*!< begin. column */
36
int
nszc
,
/*!< end. column */
37
off_t
offset2
/*!< offset */
38
)
39
{
40
int
j
;
41
static
FCELL
*
array_cell
=
NULL
;
42
43
if
(!
array_cell
)
44
array_cell
=
G_malloc
(
sizeof
(
FCELL
) * params->
nsizc
+ 1);
45
if
(params->
Tmp_fd_z
!=
NULL
) {
46
for
(
j
=
ngstc
;
j
<=
nszc
;
j
++)
47
array_cell
[
j
- 1] = (
FCELL
)params->
az
[
j
];
48
G_fseek
(params->
Tmp_fd_z
,
offset2
,
SEEK_SET
);
49
if
(!
fwrite
(
array_cell
+
ngstc
- 1,
sizeof
(
FCELL
),
nszc
-
ngstc
+ 1,
50
params->
Tmp_fd_z
))
51
G_fatal_error
(
_
(
"Cannot write files"
));
52
}
53
if
(params->
Tmp_fd_dx
!=
NULL
) {
54
for
(
j
=
ngstc
;
j
<=
nszc
;
j
++)
55
if
(!params->
deriv
)
56
array_cell
[
j
- 1] = (
FCELL
)params->
adx
[
j
];
57
else
58
array_cell
[
j
- 1] = (
FCELL
)(params->
adx
[
j
] * params->
scik1
);
59
G_fseek
(params->
Tmp_fd_dx
,
offset2
,
SEEK_SET
);
60
if
(!
fwrite
(
array_cell
+
ngstc
- 1,
sizeof
(
FCELL
),
nszc
-
ngstc
+ 1,
61
params->
Tmp_fd_dx
))
62
G_fatal_error
(
_
(
"Cannot write files"
));
63
}
64
if
(params->
Tmp_fd_dy
!=
NULL
) {
65
for
(
j
=
ngstc
;
j
<=
nszc
;
j
++) {
66
if
(!params->
deriv
) {
67
if
(params->
ady
[
j
] > 0. && params->
ady
[
j
] < 0.5)
68
params->
ady
[
j
] = 360.;
69
array_cell
[
j
- 1] = (
FCELL
)params->
ady
[
j
];
70
}
71
else
72
array_cell
[
j
- 1] = (
FCELL
)(params->
ady
[
j
] * params->
scik1
);
73
}
74
G_fseek
(params->
Tmp_fd_dy
,
offset2
,
SEEK_SET
);
75
if
(!
fwrite
(
array_cell
+
ngstc
- 1,
sizeof
(
FCELL
),
nszc
-
ngstc
+ 1,
76
params->
Tmp_fd_dy
))
77
G_fatal_error
(
_
(
"Cannot write files"
));
78
}
79
if
(params->
Tmp_fd_xx
!=
NULL
) {
80
for
(
j
=
ngstc
;
j
<=
nszc
;
j
++) {
81
array_cell
[
j
- 1] = (
FCELL
)(params->
adxx
[
j
] * params->
scik1
);
82
}
83
G_fseek
(params->
Tmp_fd_xx
,
offset2
,
SEEK_SET
);
84
if
(!
fwrite
(
array_cell
+
ngstc
- 1,
sizeof
(
FCELL
),
nszc
-
ngstc
+ 1,
85
params->
Tmp_fd_xx
))
86
G_fatal_error
(
_
(
"Cannot write files"
));
87
}
88
if
(params->
Tmp_fd_yy
!=
NULL
) {
89
for
(
j
=
ngstc
;
j
<=
nszc
;
j
++)
90
array_cell
[
j
- 1] = (
FCELL
)(params->
adyy
[
j
] * params->
scik2
);
91
G_fseek
(params->
Tmp_fd_yy
,
offset2
,
SEEK_SET
);
92
if
(!
fwrite
(
array_cell
+
ngstc
- 1,
sizeof
(
FCELL
),
nszc
-
ngstc
+ 1,
93
params->
Tmp_fd_yy
))
94
G_fatal_error
(
_
(
"Cannot write files"
));
95
}
96
if
(params->
Tmp_fd_xy
!=
NULL
) {
97
for
(
j
=
ngstc
;
j
<=
nszc
;
j
++)
98
array_cell
[
j
- 1] = (
FCELL
)(params->
adxy
[
j
] * params->
scik3
);
99
G_fseek
(params->
Tmp_fd_xy
,
offset2
,
SEEK_SET
);
100
if
(!
fwrite
(
array_cell
+
ngstc
- 1,
sizeof
(
FCELL
),
nszc
-
ngstc
+ 1,
101
params->
Tmp_fd_xy
))
102
G_fatal_error
(
_
(
"Cannot write files"
));
103
}
104
return
1;
105
}
NULL
#define NULL
Definition
ccmath.h:32
AMI_STREAM
Definition
ami_stream.h:153
config.h
G_fatal_error
void void void void G_fatal_error(const char *,...) __attribute__((format(printf
G_malloc
#define G_malloc(n)
Definition
defs/gis.h:139
G_fseek
void G_fseek(FILE *, off_t, int)
Change the file position of the stream.
Definition
gis/seek.c:50
gis.h
FCELL
float FCELL
Definition
gis.h:636
glocale.h
_
#define _(str)
Definition
glocale.h:10
stdio.h
interp_params
Definition
interpf.h:70
interp_params::Tmp_fd_xx
FILE * Tmp_fd_xx
Definition
interpf.h:123
interp_params::Tmp_fd_xy
FILE * Tmp_fd_xy
Definition
interpf.h:123
interp_params::scik2
int scik2
Definition
interpf.h:102
interp_params::az
DCELL * az
Definition
interpf.h:94
interp_params::deriv
int deriv
Definition
interpf.h:114
interp_params::Tmp_fd_yy
FILE * Tmp_fd_yy
Definition
interpf.h:123
interp_params::adxy
DCELL * adxy
Definition
interpf.h:94
interp_params::scik3
int scik3
Definition
interpf.h:102
interp_params::Tmp_fd_dx
FILE * Tmp_fd_dx
Definition
interpf.h:123
interp_params::adyy
DCELL * adyy
Definition
interpf.h:94
interp_params::adx
DCELL * adx
Definition
interpf.h:94
interp_params::Tmp_fd_z
FILE * Tmp_fd_z
Definition
interpf.h:123
interp_params::ady
DCELL * ady
Definition
interpf.h:94
interp_params::nsizc
int nsizc
Definition
interpf.h:92
interp_params::Tmp_fd_dy
FILE * Tmp_fd_dy
Definition
interpf.h:123
interp_params::adxx
DCELL * adxx
Definition
interpf.h:94
interp_params::scik1
int scik1
Definition
interpf.h:102
unistd.h
IL_write_temp_2d
int IL_write_temp_2d(struct interp_params *params, int ngstc, int nszc, off_t offset2)
Definition
write2d.c:34
lib
rst
interp_float
write2d.c
Generated on Sun Apr 5 2026 06:59:59 for GRASS 8 Programmer's Manual by
1.9.8