File: init2d.c

package info (click to toggle)
grass 6.0.2-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 40,044 kB
  • ctags: 31,303
  • sloc: ansic: 321,125; tcl: 25,676; sh: 11,176; cpp: 10,098; makefile: 5,025; fortran: 1,846; yacc: 493; lex: 462; perl: 133; sed: 1
file content (137 lines) | stat: -rw-r--r-- 3,669 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
/*-
 * Written by H. Mitasova, I. Kosinovsky, D. Gerdes Fall 1993
 * Copyright 1993, H. Mitasova ,
 * I. Kosinovsky, and D.Gerdes   
 *
 * modified by McCauley in August 1995
 * modified by Mitasova in August 1995  
 * modified by Brown in June 1999 - added elatt & smatt 
 *
 */

#include <stdio.h>
#include <math.h>
#include <unistd.h>
#include "gis.h"
#include "interpf.h"

void IL_init_params_2d (
/* initialize parameters */
    struct interp_params *params,
    FILE *inp,			/* input stream */
    int elatt,                    /* which fp att in sites file? 1 = first */
    int smatt,                    /* which fp att in sites file to use for 
				   * smoothing? (if zero use sm) 1 = first */
    double zm,			/* multiplier for z-values */
    int k1,			/* min number of points per segment for
				   * interpolation */
    int k2,			/* max number of points per segment */
    char *msk,			/* name of mask */
    int rows,
    int cols,		/* number of rows and columns */
    DCELL *ar1,
    DCELL *ar2,
    DCELL *ar3,
    DCELL *ar4,
    DCELL *ar5,
    DCELL *ar6,	/* arrays for interpolated
						 * values */
    double tension,		/* tension */
    int k3,			/* max num. of points for interp. */
    int sc1,
    int sc2,
    int sc3,		/* multipliers for interp. values */
    double sm,			/* smoothing */
    char *f1,
    char *f2,
    char *f3,
    char *f4,
    char *f5,
    char *f6,	/* output files */
    double dm,			/* min distance between points */
    double x_or,
    double y_or,		/* origin */
    int der,			/* 1 if compute partial derivs */
   double tet,                            /* anisotropy angle, 0=East,counter-clockwise */
   double scl,                          /* anisotropy scaling factor */
    FILE *t1,
    FILE *t2,
    FILE *t3,
    FILE *t4,
    FILE *t5,
    FILE *t6,	/* temp files for writing interp.
					 * values */
    FILE *dev,			/* pointer to deviations file */
    struct TimeStamp *ts,
    int c
)


{
  params->fdinp = inp;
  params->elatt = elatt;
  params->smatt = smatt;
  params->zmult = zm;
  params->kmin = k1;
  params->kmax = k2;
  params->maskmap = msk;
  params->nsizr = rows;
  params->nsizc = cols;
  params->az = ar1;
  params->adx = ar2;
  params->ady = ar3;
  params->adxx = ar4;
  params->adyy = ar5;
  params->adxy = ar6;
  params->fi = tension,
    params->KMAX2 = k3;
  params->scik1 = sc1;
  params->scik2 = sc2;
  params->scik3 = sc3;
  params->rsm = sm;
  params->elev = f1;
  params->slope = f2;
  params->aspect = f3;
  params->pcurv = f4;
  params->tcurv = f5;
  params->mcurv = f6;
  params->dmin = dm;
  params->x_orig = x_or;
  params->y_orig = y_or;
  params->deriv = der;
  params->theta = tet;
  params->scalex = scl;
  params->Tmp_fd_z = t1;
  params->Tmp_fd_dx = t2;
  params->Tmp_fd_dy = t3;
  params->Tmp_fd_xx = t4;
  params->Tmp_fd_yy = t5;
  params->Tmp_fd_xy = t6;
  params->fddevi = dev;
  params->ts = ts;
  params->cv = c;

}

void IL_init_func_2d (
    struct interp_params *params,
    int (*grid_f)(void),		/* calculates grid for given segm */
    int (*matr_f)(void),		/* creates matrix for a given segm */
    int (*point_f)(void),		/* checks interp. func. at points */
    int (*secp_f)(void),		/* calculates aspect,slope,curv. */
    double (*interp_f)(void),	/* radial  basis function */
    int (*interpder_f)(void),	/* derivatives of radial basis func.*/
    int (*temp_f)(void)		/* writes temp files */
)

/* initialize functions */
{
  params->grid_calc = grid_f;
  params->matrix_create = matr_f;
  params->check_points = point_f;
  params->secpar = secp_f;
  params->interp = interp_f;
  params->interpder = interpder_f;
  params->wr_temp = temp_f;

}