1 | |
---|
2 | //---------------------------------------------------- |
---|
3 | // project: floater header generated by YAO version v.9 |
---|
4 | //---------------------------------------------------- |
---|
5 | |
---|
6 | // DEFINE FOR PARALLELISM |
---|
7 | #define NOT_PARALLEL |
---|
8 | |
---|
9 | //€ € € € LES DECLARATIONS DE CLASS, DEFINE ET ALLOCATION DU PROJET |
---|
10 | #define jtlag 12 |
---|
11 | #define nlon 87 |
---|
12 | #define nlat 58 |
---|
13 | #define nfloat 1 |
---|
14 | #define Y3_M 8 |
---|
15 | #define YO_M1QN3 |
---|
16 | #define YO_GRADTEST |
---|
17 | #define YDOUBLE |
---|
18 | #define YTINY 1.e-15 |
---|
19 | #define YREAL double |
---|
20 | |
---|
21 | #define YNBUPTIME_T_float 1 |
---|
22 | #define YNBSTEPTIME_T_float 12 |
---|
23 | #define YNBALLTIME_T_float 13 |
---|
24 | #define YDt_T_float YTabTraj[0].dtime |
---|
25 | #define Yid_T_float 0 |
---|
26 | |
---|
27 | #define YNBUPTIME_T_euler 0 |
---|
28 | #define YNBSTEPTIME_T_euler 1 |
---|
29 | #define YNBALLTIME_T_euler 1 |
---|
30 | #define YDt_T_euler YTabTraj[1].dtime |
---|
31 | #define Yid_T_euler 1 |
---|
32 | |
---|
33 | #define YA1_S_float 1 |
---|
34 | #define YDIM_S_float 1 |
---|
35 | #define YNB_S_float 1 |
---|
36 | #define Yid_S_float 0 |
---|
37 | |
---|
38 | #define YA1_S_euler 87 |
---|
39 | #define YA2_S_euler 58 |
---|
40 | #define YDIM_S_euler 2 |
---|
41 | #define YNB_S_euler 5046 |
---|
42 | #define Yid_S_euler 1 |
---|
43 | |
---|
44 | #define YA1_S_eulerlocate 1 |
---|
45 | #define YA2_S_eulerlocate 87 |
---|
46 | #define YA3_S_eulerlocate 58 |
---|
47 | #define YA2A3_S_eulerlocate 5046 |
---|
48 | #define YDIM_S_eulerlocate 3 |
---|
49 | #define YNB_S_eulerlocate 5046 |
---|
50 | #define Yid_S_eulerlocate 2 |
---|
51 | |
---|
52 | /*----------------- GENERATION OF MODULES... -------------*/ |
---|
53 | |
---|
54 | //~~~~~~~~~~~~~~~~~~~~~~~~~ module r_float~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
55 | #define Yid_r_float 0 |
---|
56 | /*M1_VALST */ #define Ydelta_r_float(v, i, t) Yr_float[i]->Ydelta[t][v] |
---|
57 | /*M1_VALST */ #define YD_r_float(v, i, t) Yr_float[i]->Ydelta[t][v] |
---|
58 | /*M1_VALSIT */ #define YD1_r_float(i, t) Yr_float[i]->Ydelta[t][0] |
---|
59 | /*M1_VALSIT */ #define YD2_r_float(i, t) Yr_float[i]->Ydelta[t][1] |
---|
60 | /*M1_HERESIT*/ #define YD1Y_r_float Yr_float[Yi]->Ydelta[YTemps][0] |
---|
61 | /*M1_HERESIT*/ #define YD2Y_r_float Yr_float[Yi]->Ydelta[YTemps][1] |
---|
62 | |
---|
63 | class Yaor_float; |
---|
64 | class r_float; |
---|
65 | /*NBSMOD */ #define YNBS_r_float 2 |
---|
66 | /*NBIMOD */ #define YNBI_r_float 4 |
---|
67 | /*M1_IRMOD */ #define Yr_float(i) Yr_float[i] |
---|
68 | /*M1_NOWMOD */ #define Yr_floatY Yr_float[Yi] |
---|
69 | /*M1_VALST */ #define Ystate_r_float(v, i, t) Yr_float[i]->Ystate[t][v] |
---|
70 | /*M1_VALST */ #define YS_r_float(v, i, t) Yr_float[i]->Ystate[t][v] |
---|
71 | /*M1_VALSIT */ #define YS1_r_float(i, t) Yr_float[i]->Ystate[t][0] |
---|
72 | /*M1_HERESIT*/ #define YS1Y_r_float Yr_float[Yi]->Ystate[YTemps][0] |
---|
73 | /*M1_VALSIT */ #define YS2_r_float(i, t) Yr_float[i]->Ystate[t][1] |
---|
74 | /*M1_HERESIT*/ #define YS2Y_r_float Yr_float[Yi]->Ystate[YTemps][1] |
---|
75 | /*M1_VALST */ #define Ygrad_r_float(v, i, t) Yr_float[i]->Ygrad[t][v] |
---|
76 | /*M1_VALST */ #define YG_r_float(v, i, t) Yr_float[i]->Ygrad[t][v] |
---|
77 | /*M1_VALSIT */ #define YG1_r_float(i, t) Yr_float[i]->Ygrad[t][0] |
---|
78 | /*M1_HERESIT*/ #define YG1Y_r_float Yr_float[Yi]->Ygrad[YTemps][0] |
---|
79 | /*M1_VALSIT */ #define YG2_r_float(i, t) Yr_float[i]->Ygrad[t][1] |
---|
80 | /*M1_HERESIT*/ #define YG2Y_r_float Yr_float[Yi]->Ygrad[YTemps][1] |
---|
81 | r_float *Yr_float[YA1_S_float]; |
---|
82 | /*M1_VALSG */ #define Ywish_r_float(v, i) Yr_float[i]->Ywish[v] |
---|
83 | /*M1_VALSG */ #define YW_r_float(v, i) Yr_float[i]->Ywish[v] |
---|
84 | /*M1_VALSGI */ #define YW1_r_float(i) Yr_float[i]->Ywish[0] |
---|
85 | /*M1_HERESGI*/ #define YW1Y_r_float Yr_float[Yi]->Ywish[0] |
---|
86 | /*M1_VALSGI */ #define YW2_r_float(i) Yr_float[i]->Ywish[1] |
---|
87 | /*M1_HERESGI*/ #define YW2Y_r_float Yr_float[Yi]->Ywish[1] |
---|
88 | |
---|
89 | //~~~~~~~~~~~~~~~~~~~~~~~~~ module ur~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
90 | #define Yid_ur 1 |
---|
91 | /*M1_VALST */ #define Ydelta_ur(v, i, t) Yur[i]->Ydelta[t][v] |
---|
92 | /*M1_VALST */ #define YD_ur(v, i, t) Yur[i]->Ydelta[t][v] |
---|
93 | /*M1_VALSIT */ #define YD1_ur(i, t) Yur[i]->Ydelta[t][0] |
---|
94 | /*M1_VALSIT */ #define YD2_ur(i, t) Yur[i]->Ydelta[t][1] |
---|
95 | /*M1_HERESIT*/ #define YD1Y_ur Yur[Yi]->Ydelta[YTemps][0] |
---|
96 | /*M1_HERESIT*/ #define YD2Y_ur Yur[Yi]->Ydelta[YTemps][1] |
---|
97 | |
---|
98 | class Yaour; |
---|
99 | class ur; |
---|
100 | /*NBSMOD */ #define YNBS_ur 2 |
---|
101 | /*NBIMOD */ #define YNBI_ur 18 |
---|
102 | /*M1_IRMOD */ #define Yur(i) Yur[i] |
---|
103 | /*M1_NOWMOD */ #define YurY Yur[Yi] |
---|
104 | /*M1_VALST */ #define Ystate_ur(v, i, t) Yur[i]->Ystate[t][v] |
---|
105 | /*M1_VALST */ #define YS_ur(v, i, t) Yur[i]->Ystate[t][v] |
---|
106 | /*M1_VALSIT */ #define YS1_ur(i, t) Yur[i]->Ystate[t][0] |
---|
107 | /*M1_HERESIT*/ #define YS1Y_ur Yur[Yi]->Ystate[YTemps][0] |
---|
108 | /*M1_VALSIT */ #define YS2_ur(i, t) Yur[i]->Ystate[t][1] |
---|
109 | /*M1_HERESIT*/ #define YS2Y_ur Yur[Yi]->Ystate[YTemps][1] |
---|
110 | /*M1_VALST */ #define Ygrad_ur(v, i, t) Yur[i]->Ygrad[t][v] |
---|
111 | /*M1_VALST */ #define YG_ur(v, i, t) Yur[i]->Ygrad[t][v] |
---|
112 | /*M1_VALSIT */ #define YG1_ur(i, t) Yur[i]->Ygrad[t][0] |
---|
113 | /*M1_HERESIT*/ #define YG1Y_ur Yur[Yi]->Ygrad[YTemps][0] |
---|
114 | /*M1_VALSIT */ #define YG2_ur(i, t) Yur[i]->Ygrad[t][1] |
---|
115 | /*M1_HERESIT*/ #define YG2Y_ur Yur[Yi]->Ygrad[YTemps][1] |
---|
116 | ur *Yur[YA1_S_float]; |
---|
117 | |
---|
118 | //~~~~~~~~~~~~~~~~~~~~~~~~~ module uinter~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
119 | #define Yid_uinter 2 |
---|
120 | /*M1_VALST */ #define Ydelta_uinter(v, i, t) Yuinter[i]->Ydelta[t][v] |
---|
121 | /*M1_VALST */ #define YD_uinter(v, i, t) Yuinter[i]->Ydelta[t][v] |
---|
122 | /*M1_VALSIT */ #define YD1_uinter(i, t) Yuinter[i]->Ydelta[t][0] |
---|
123 | /*M1_VALSIT */ #define YD2_uinter(i, t) Yuinter[i]->Ydelta[t][1] |
---|
124 | /*M1_VALSIT */ #define YD3_uinter(i, t) Yuinter[i]->Ydelta[t][2] |
---|
125 | /*M1_VALSIT */ #define YD4_uinter(i, t) Yuinter[i]->Ydelta[t][3] |
---|
126 | /*M1_VALSIT */ #define YD5_uinter(i, t) Yuinter[i]->Ydelta[t][4] |
---|
127 | /*M1_VALSIT */ #define YD6_uinter(i, t) Yuinter[i]->Ydelta[t][5] |
---|
128 | /*M1_VALSIT */ #define YD7_uinter(i, t) Yuinter[i]->Ydelta[t][6] |
---|
129 | /*M1_VALSIT */ #define YD8_uinter(i, t) Yuinter[i]->Ydelta[t][7] |
---|
130 | /*M1_HERESIT*/ #define YD1Y_uinter Yuinter[Yi]->Ydelta[YTemps][0] |
---|
131 | /*M1_HERESIT*/ #define YD2Y_uinter Yuinter[Yi]->Ydelta[YTemps][1] |
---|
132 | /*M1_HERESIT*/ #define YD3Y_uinter Yuinter[Yi]->Ydelta[YTemps][2] |
---|
133 | /*M1_HERESIT*/ #define YD4Y_uinter Yuinter[Yi]->Ydelta[YTemps][3] |
---|
134 | /*M1_HERESIT*/ #define YD5Y_uinter Yuinter[Yi]->Ydelta[YTemps][4] |
---|
135 | /*M1_HERESIT*/ #define YD6Y_uinter Yuinter[Yi]->Ydelta[YTemps][5] |
---|
136 | /*M1_HERESIT*/ #define YD7Y_uinter Yuinter[Yi]->Ydelta[YTemps][6] |
---|
137 | /*M1_HERESIT*/ #define YD8Y_uinter Yuinter[Yi]->Ydelta[YTemps][7] |
---|
138 | |
---|
139 | class Yaouinter; |
---|
140 | /*NBSMOD */ #define YNBS_uinter 8 |
---|
141 | /*M1_IRMOD */ #define Yuinter(i) Yuinter[i] |
---|
142 | /*M1_NOWMOD */ #define YuinterY Yuinter[Yi] |
---|
143 | /*M1_VALST */ #define Ystate_uinter(v, i, t) Yuinter[i]->Ystate[t][v] |
---|
144 | /*M1_VALST */ #define YS_uinter(v, i, t) Yuinter[i]->Ystate[t][v] |
---|
145 | /*M1_VALSIT */ #define YS1_uinter(i, t) Yuinter[i]->Ystate[t][0] |
---|
146 | /*M1_HERESIT*/ #define YS1Y_uinter Yuinter[Yi]->Ystate[YTemps][0] |
---|
147 | /*M1_VALSIT */ #define YS2_uinter(i, t) Yuinter[i]->Ystate[t][1] |
---|
148 | /*M1_HERESIT*/ #define YS2Y_uinter Yuinter[Yi]->Ystate[YTemps][1] |
---|
149 | /*M1_VALSIT */ #define YS3_uinter(i, t) Yuinter[i]->Ystate[t][2] |
---|
150 | /*M1_HERESIT*/ #define YS3Y_uinter Yuinter[Yi]->Ystate[YTemps][2] |
---|
151 | /*M1_VALSIT */ #define YS4_uinter(i, t) Yuinter[i]->Ystate[t][3] |
---|
152 | /*M1_HERESIT*/ #define YS4Y_uinter Yuinter[Yi]->Ystate[YTemps][3] |
---|
153 | /*M1_VALSIT */ #define YS5_uinter(i, t) Yuinter[i]->Ystate[t][4] |
---|
154 | /*M1_HERESIT*/ #define YS5Y_uinter Yuinter[Yi]->Ystate[YTemps][4] |
---|
155 | /*M1_VALSIT */ #define YS6_uinter(i, t) Yuinter[i]->Ystate[t][5] |
---|
156 | /*M1_HERESIT*/ #define YS6Y_uinter Yuinter[Yi]->Ystate[YTemps][5] |
---|
157 | /*M1_VALSIT */ #define YS7_uinter(i, t) Yuinter[i]->Ystate[t][6] |
---|
158 | /*M1_HERESIT*/ #define YS7Y_uinter Yuinter[Yi]->Ystate[YTemps][6] |
---|
159 | /*M1_VALSIT */ #define YS8_uinter(i, t) Yuinter[i]->Ystate[t][7] |
---|
160 | /*M1_HERESIT*/ #define YS8Y_uinter Yuinter[Yi]->Ystate[YTemps][7] |
---|
161 | /*M1_VALST */ #define Ygrad_uinter(v, i, t) Yuinter[i]->Ygrad[t][v] |
---|
162 | /*M1_VALST */ #define YG_uinter(v, i, t) Yuinter[i]->Ygrad[t][v] |
---|
163 | /*M1_VALSIT */ #define YG1_uinter(i, t) Yuinter[i]->Ygrad[t][0] |
---|
164 | /*M1_HERESIT*/ #define YG1Y_uinter Yuinter[Yi]->Ygrad[YTemps][0] |
---|
165 | /*M1_VALSIT */ #define YG2_uinter(i, t) Yuinter[i]->Ygrad[t][1] |
---|
166 | /*M1_HERESIT*/ #define YG2Y_uinter Yuinter[Yi]->Ygrad[YTemps][1] |
---|
167 | /*M1_VALSIT */ #define YG3_uinter(i, t) Yuinter[i]->Ygrad[t][2] |
---|
168 | /*M1_HERESIT*/ #define YG3Y_uinter Yuinter[Yi]->Ygrad[YTemps][2] |
---|
169 | /*M1_VALSIT */ #define YG4_uinter(i, t) Yuinter[i]->Ygrad[t][3] |
---|
170 | /*M1_HERESIT*/ #define YG4Y_uinter Yuinter[Yi]->Ygrad[YTemps][3] |
---|
171 | /*M1_VALSIT */ #define YG5_uinter(i, t) Yuinter[i]->Ygrad[t][4] |
---|
172 | /*M1_HERESIT*/ #define YG5Y_uinter Yuinter[Yi]->Ygrad[YTemps][4] |
---|
173 | /*M1_VALSIT */ #define YG6_uinter(i, t) Yuinter[i]->Ygrad[t][5] |
---|
174 | /*M1_HERESIT*/ #define YG6Y_uinter Yuinter[Yi]->Ygrad[YTemps][5] |
---|
175 | /*M1_VALSIT */ #define YG7_uinter(i, t) Yuinter[i]->Ygrad[t][6] |
---|
176 | /*M1_HERESIT*/ #define YG7Y_uinter Yuinter[Yi]->Ygrad[YTemps][6] |
---|
177 | /*M1_VALSIT */ #define YG8_uinter(i, t) Yuinter[i]->Ygrad[t][7] |
---|
178 | /*M1_HERESIT*/ #define YG8Y_uinter Yuinter[Yi]->Ygrad[YTemps][7] |
---|
179 | Yaouinter *Yuinter[YA1_S_float]; |
---|
180 | |
---|
181 | //~~~~~~~~~~~~~~~~~~~~~~~~~ module xinter~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
182 | #define Yid_xinter 3 |
---|
183 | /*M1_VALST */ #define Ydelta_xinter(v, i, t) Yxinter[i]->Ydelta[t][v] |
---|
184 | /*M1_VALST */ #define YD_xinter(v, i, t) Yxinter[i]->Ydelta[t][v] |
---|
185 | /*M1_VALSIT */ #define YD1_xinter(i, t) Yxinter[i]->Ydelta[t][0] |
---|
186 | /*M1_VALSIT */ #define YD2_xinter(i, t) Yxinter[i]->Ydelta[t][1] |
---|
187 | /*M1_VALSIT */ #define YD3_xinter(i, t) Yxinter[i]->Ydelta[t][2] |
---|
188 | /*M1_VALSIT */ #define YD4_xinter(i, t) Yxinter[i]->Ydelta[t][3] |
---|
189 | /*M1_VALSIT */ #define YD5_xinter(i, t) Yxinter[i]->Ydelta[t][4] |
---|
190 | /*M1_VALSIT */ #define YD6_xinter(i, t) Yxinter[i]->Ydelta[t][5] |
---|
191 | /*M1_VALSIT */ #define YD7_xinter(i, t) Yxinter[i]->Ydelta[t][6] |
---|
192 | /*M1_VALSIT */ #define YD8_xinter(i, t) Yxinter[i]->Ydelta[t][7] |
---|
193 | /*M1_HERESIT*/ #define YD1Y_xinter Yxinter[Yi]->Ydelta[YTemps][0] |
---|
194 | /*M1_HERESIT*/ #define YD2Y_xinter Yxinter[Yi]->Ydelta[YTemps][1] |
---|
195 | /*M1_HERESIT*/ #define YD3Y_xinter Yxinter[Yi]->Ydelta[YTemps][2] |
---|
196 | /*M1_HERESIT*/ #define YD4Y_xinter Yxinter[Yi]->Ydelta[YTemps][3] |
---|
197 | /*M1_HERESIT*/ #define YD5Y_xinter Yxinter[Yi]->Ydelta[YTemps][4] |
---|
198 | /*M1_HERESIT*/ #define YD6Y_xinter Yxinter[Yi]->Ydelta[YTemps][5] |
---|
199 | /*M1_HERESIT*/ #define YD7Y_xinter Yxinter[Yi]->Ydelta[YTemps][6] |
---|
200 | /*M1_HERESIT*/ #define YD8Y_xinter Yxinter[Yi]->Ydelta[YTemps][7] |
---|
201 | |
---|
202 | class Yaoxinter; |
---|
203 | /*NBSMOD */ #define YNBS_xinter 8 |
---|
204 | /*M1_IRMOD */ #define Yxinter(i) Yxinter[i] |
---|
205 | /*M1_NOWMOD */ #define YxinterY Yxinter[Yi] |
---|
206 | /*M1_VALST */ #define Ystate_xinter(v, i, t) Yxinter[i]->Ystate[t][v] |
---|
207 | /*M1_VALST */ #define YS_xinter(v, i, t) Yxinter[i]->Ystate[t][v] |
---|
208 | /*M1_VALSIT */ #define YS1_xinter(i, t) Yxinter[i]->Ystate[t][0] |
---|
209 | /*M1_HERESIT*/ #define YS1Y_xinter Yxinter[Yi]->Ystate[YTemps][0] |
---|
210 | /*M1_VALSIT */ #define YS2_xinter(i, t) Yxinter[i]->Ystate[t][1] |
---|
211 | /*M1_HERESIT*/ #define YS2Y_xinter Yxinter[Yi]->Ystate[YTemps][1] |
---|
212 | /*M1_VALSIT */ #define YS3_xinter(i, t) Yxinter[i]->Ystate[t][2] |
---|
213 | /*M1_HERESIT*/ #define YS3Y_xinter Yxinter[Yi]->Ystate[YTemps][2] |
---|
214 | /*M1_VALSIT */ #define YS4_xinter(i, t) Yxinter[i]->Ystate[t][3] |
---|
215 | /*M1_HERESIT*/ #define YS4Y_xinter Yxinter[Yi]->Ystate[YTemps][3] |
---|
216 | /*M1_VALSIT */ #define YS5_xinter(i, t) Yxinter[i]->Ystate[t][4] |
---|
217 | /*M1_HERESIT*/ #define YS5Y_xinter Yxinter[Yi]->Ystate[YTemps][4] |
---|
218 | /*M1_VALSIT */ #define YS6_xinter(i, t) Yxinter[i]->Ystate[t][5] |
---|
219 | /*M1_HERESIT*/ #define YS6Y_xinter Yxinter[Yi]->Ystate[YTemps][5] |
---|
220 | /*M1_VALSIT */ #define YS7_xinter(i, t) Yxinter[i]->Ystate[t][6] |
---|
221 | /*M1_HERESIT*/ #define YS7Y_xinter Yxinter[Yi]->Ystate[YTemps][6] |
---|
222 | /*M1_VALSIT */ #define YS8_xinter(i, t) Yxinter[i]->Ystate[t][7] |
---|
223 | /*M1_HERESIT*/ #define YS8Y_xinter Yxinter[Yi]->Ystate[YTemps][7] |
---|
224 | /*M1_VALST */ #define Ygrad_xinter(v, i, t) Yxinter[i]->Ygrad[t][v] |
---|
225 | /*M1_VALST */ #define YG_xinter(v, i, t) Yxinter[i]->Ygrad[t][v] |
---|
226 | /*M1_VALSIT */ #define YG1_xinter(i, t) Yxinter[i]->Ygrad[t][0] |
---|
227 | /*M1_HERESIT*/ #define YG1Y_xinter Yxinter[Yi]->Ygrad[YTemps][0] |
---|
228 | /*M1_VALSIT */ #define YG2_xinter(i, t) Yxinter[i]->Ygrad[t][1] |
---|
229 | /*M1_HERESIT*/ #define YG2Y_xinter Yxinter[Yi]->Ygrad[YTemps][1] |
---|
230 | /*M1_VALSIT */ #define YG3_xinter(i, t) Yxinter[i]->Ygrad[t][2] |
---|
231 | /*M1_HERESIT*/ #define YG3Y_xinter Yxinter[Yi]->Ygrad[YTemps][2] |
---|
232 | /*M1_VALSIT */ #define YG4_xinter(i, t) Yxinter[i]->Ygrad[t][3] |
---|
233 | /*M1_HERESIT*/ #define YG4Y_xinter Yxinter[Yi]->Ygrad[YTemps][3] |
---|
234 | /*M1_VALSIT */ #define YG5_xinter(i, t) Yxinter[i]->Ygrad[t][4] |
---|
235 | /*M1_HERESIT*/ #define YG5Y_xinter Yxinter[Yi]->Ygrad[YTemps][4] |
---|
236 | /*M1_VALSIT */ #define YG6_xinter(i, t) Yxinter[i]->Ygrad[t][5] |
---|
237 | /*M1_HERESIT*/ #define YG6Y_xinter Yxinter[Yi]->Ygrad[YTemps][5] |
---|
238 | /*M1_VALSIT */ #define YG7_xinter(i, t) Yxinter[i]->Ygrad[t][6] |
---|
239 | /*M1_HERESIT*/ #define YG7Y_xinter Yxinter[Yi]->Ygrad[YTemps][6] |
---|
240 | /*M1_VALSIT */ #define YG8_xinter(i, t) Yxinter[i]->Ygrad[t][7] |
---|
241 | /*M1_HERESIT*/ #define YG8Y_xinter Yxinter[Yi]->Ygrad[YTemps][7] |
---|
242 | Yaoxinter *Yxinter[YA1_S_float]; |
---|
243 | |
---|
244 | //~~~~~~~~~~~~~~~~~~~~~~~~~ module u~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
245 | #define Yid_u 4 |
---|
246 | #define YNBPTARGET_u 0 |
---|
247 | #define YDEBTARGET_u 0 |
---|
248 | #define YENDTARGET_u 0 |
---|
249 | /*M2_VALST */ #define Ydelta_u(v, i, j, t) Yu[i][j]->Ydelta[t][v] |
---|
250 | /*M2_VALST */ #define YD_u(v, i, j, t) Yu[i][j]->Ydelta[t][v] |
---|
251 | /*M2_VALSIT */ #define YD1_u(i, j, t) Yu[i][j]->Ydelta[t][0] |
---|
252 | /*M2_HERESIT*/ #define YD1Y_u Yu[Yi][Yj]->Ydelta[YTemps][0] |
---|
253 | |
---|
254 | class Yaou; |
---|
255 | /*NBSMOD */ #define YNBS_u 1 |
---|
256 | /*M2_IRMOD */ #define Yu(i, j) Yu[i][j] |
---|
257 | /*M2_NOWMOD */ #define YuY Yu[Yi][Yj] |
---|
258 | /*M2_VALSG */ #define Ystate_u(v, i, j) Yu[i][j]->Ystate[v] |
---|
259 | /*M2_VALSG */ #define YS_u(v, i, j) Yu[i][j]->Ystate[v] |
---|
260 | /*M2_VALSGI */ #define YS1_u(i, j) Yu[i][j]->Ystate[0] |
---|
261 | /*M2_HERESGI*/ #define YS1Y_u Yu[Yi][Yj]->Ystate[0] |
---|
262 | /*M2_VALSG */ #define Ygrad_u(v, i, j) Yu[i][j]->Ygrad[v] |
---|
263 | /*M2_VALSG */ #define YG_u(v, i, j) Yu[i][j]->Ygrad[v] |
---|
264 | /*M2_VALSGI */ #define YG1_u(i, j) Yu[i][j]->Ygrad[0] |
---|
265 | /*M2_HERESGI*/ #define YG1Y_u Yu[Yi][Yj]->Ygrad[0] |
---|
266 | /*M2_VALSG */ #define Yepsi_u(v, i, j) Yu[i][j]->Yepsi[v] |
---|
267 | /*M2_VALSG */ #define YE_u(v, i, j) Yu[i][j]->Yepsi[v] |
---|
268 | /*M2_VALSGI */ #define YE1_u(i, j) Yu[i][j]->Yepsi[0] |
---|
269 | Yaou *Yu[YA1_S_euler][YA2_S_euler]; |
---|
270 | /*M2_VALSG */ #define Ywish_u(v, i, j) Yu[i][j]->Ywish[v] |
---|
271 | /*M2_VALSG */ #define YW_u(v, i, j) Yu[i][j]->Ywish[v] |
---|
272 | /*M2_VALSGI */ #define YW1_u(i, j) Yu[i][j]->Ywish[0] |
---|
273 | /*M2_HERESGI*/ #define YW1Y_u Yu[Yi][Yj]->Ywish[0] |
---|
274 | |
---|
275 | //~~~~~~~~~~~~~~~~~~~~~~~~~ module v~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
276 | #define Yid_v 5 |
---|
277 | #define YNBPTARGET_v 0 |
---|
278 | #define YDEBTARGET_v 0 |
---|
279 | #define YENDTARGET_v 0 |
---|
280 | /*M2_VALST */ #define Ydelta_v(v, i, j, t) Yv[i][j]->Ydelta[t][v] |
---|
281 | /*M2_VALST */ #define YD_v(v, i, j, t) Yv[i][j]->Ydelta[t][v] |
---|
282 | /*M2_VALSIT */ #define YD1_v(i, j, t) Yv[i][j]->Ydelta[t][0] |
---|
283 | /*M2_HERESIT*/ #define YD1Y_v Yv[Yi][Yj]->Ydelta[YTemps][0] |
---|
284 | |
---|
285 | class Yaov; |
---|
286 | /*NBSMOD */ #define YNBS_v 1 |
---|
287 | /*M2_IRMOD */ #define Yv(i, j) Yv[i][j] |
---|
288 | /*M2_NOWMOD */ #define YvY Yv[Yi][Yj] |
---|
289 | /*M2_VALSG */ #define Ystate_v(v, i, j) Yv[i][j]->Ystate[v] |
---|
290 | /*M2_VALSG */ #define YS_v(v, i, j) Yv[i][j]->Ystate[v] |
---|
291 | /*M2_VALSGI */ #define YS1_v(i, j) Yv[i][j]->Ystate[0] |
---|
292 | /*M2_HERESGI*/ #define YS1Y_v Yv[Yi][Yj]->Ystate[0] |
---|
293 | /*M2_VALSG */ #define Ygrad_v(v, i, j) Yv[i][j]->Ygrad[v] |
---|
294 | /*M2_VALSG */ #define YG_v(v, i, j) Yv[i][j]->Ygrad[v] |
---|
295 | /*M2_VALSGI */ #define YG1_v(i, j) Yv[i][j]->Ygrad[0] |
---|
296 | /*M2_HERESGI*/ #define YG1Y_v Yv[Yi][Yj]->Ygrad[0] |
---|
297 | /*M2_VALSG */ #define Yepsi_v(v, i, j) Yv[i][j]->Yepsi[v] |
---|
298 | /*M2_VALSG */ #define YE_v(v, i, j) Yv[i][j]->Yepsi[v] |
---|
299 | /*M2_VALSGI */ #define YE1_v(i, j) Yv[i][j]->Yepsi[0] |
---|
300 | Yaov *Yv[YA1_S_euler][YA2_S_euler]; |
---|
301 | /*M2_VALSG */ #define Ywish_v(v, i, j) Yv[i][j]->Ywish[v] |
---|
302 | /*M2_VALSG */ #define YW_v(v, i, j) Yv[i][j]->Ywish[v] |
---|
303 | /*M2_VALSGI */ #define YW1_v(i, j) Yv[i][j]->Ywish[0] |
---|
304 | /*M2_HERESGI*/ #define YW1Y_v Yv[Yi][Yj]->Ywish[0] |
---|
305 | |
---|
306 | //~~~~~~~~~~~~~~~~~~~~~~~~~ module locate~~~~~~~~~~~~~~~~~~~~~~~~~ |
---|
307 | #define Yid_locate 6 |
---|
308 | /*M3_VALST */ #define Ydelta_locate(v, i, j, k, t) Ylocate[i][j][k]->Ydelta[t][v] |
---|
309 | /*M3_VALST */ #define YD_locate(v, i, j, k, t) Ylocate[i][j][k]->Ydelta[t][v] |
---|
310 | /*M3_VALSIT */ #define YD1_locate(i, j, k, t) Ylocate[i][j][k]->Ydelta[t][0] |
---|
311 | /*M3_HERESIT*/ #define YD1Y_locate Ylocate[Yi][Yj][Yk]->Ydelta[YTemps][0] |
---|
312 | |
---|
313 | class Yaolocate; |
---|
314 | class locate; |
---|
315 | /*NBSMOD */ #define YNBS_locate 1 |
---|
316 | /*NBIMOD */ #define YNBI_locate 2 |
---|
317 | /*M3_IRMOD */ #define Ylocate(i, j, k) Ylocate[i][j][k] |
---|
318 | /*M3_NOWMOD */ #define YlocateY Ylocate[Yi][Yj][Yk] |
---|
319 | /*M3_VALST */ #define Ystate_locate(v, i, j, k, t) Ylocate[i][j][k]->Ystate[t][v] |
---|
320 | /*M3_VALST */ #define YS_locate(v, i, j, k, t) Ylocate[i][j][k]->Ystate[t][v] |
---|
321 | /*M3_VALSIT */ #define YS1_locate(i, j, k, t) Ylocate[i][j][k]->Ystate[t][0] |
---|
322 | /*M3_HERESIT*/ #define YS1Y_locate Ylocate[Yi][Yj][Yk]->Ystate[YTemps][0] |
---|
323 | /*M3_VALST */ #define Ygrad_locate(v, i, j, k, t) Ylocate[i][j][k]->Ygrad[t][v] |
---|
324 | /*M3_VALST */ #define YG_locate(v, i, j, k, t) Ylocate[i][j][k]->Ygrad[t][v] |
---|
325 | /*M3_VALSIT */ #define YG1_locate(i, j, k, t) Ylocate[i][j][k]->Ygrad[t][0] |
---|
326 | /*M3_HERESIT*/ #define YG1Y_locate Ylocate[Yi][Yj][Yk]->Ygrad[YTemps][0] |
---|
327 | locate *Ylocate[YA1_S_eulerlocate][YA2_S_eulerlocate][YA3_S_eulerlocate]; |
---|
328 | #define YSIZEPB 10092//sum of the number of states (output) of all targets |
---|
329 | |
---|
330 | //€ € € € FOR M1QN3 € € € € € € € € € € € € € € € € € € € € € € € |
---|
331 | float Y3x[YSIZEPB]; //table for the states of targets |
---|
332 | float Y3g[YSIZEPB]; //table for the gradients of targets |
---|
333 | #define Y3_SZ_RZ 201848 //rz dimension |
---|
334 | float Y3rz[Y3_SZ_RZ]; |
---|
335 | #define Y3_SZ_IZ 5 //iz dimension |
---|
336 | float Y3dxmin[1]; //resolution scalar for the vector to be controlled |
---|
337 | |
---|
338 | /*------- GENERATION of global objects ------------------------*/ |
---|
339 | #define YSIZECO 2 //size of modules cout (atempo)(event if not in order !) |
---|
340 | #define YMAX_NBI 18 //max input number of a module |
---|
341 | #define YMAX_NBS 8 //max output number of a module |
---|
342 | #define YMAX_JAC_NBI 18 //max number of input for the jacobian (Yjac) |
---|
343 | #define YMAX_JAC_NBS 8 //max number of output for the jacobian (Yjac) |
---|
344 | double Yting[YMAX_NBI]; //max table for a global and common inputs number |
---|
345 | double Yjac[YMAX_JAC_NBS][YMAX_JAC_NBI]; //max table for a global and common jacobian |
---|
346 | #define YJ1I1 Yjac[0][0] |
---|
347 | #define YJ1I2 Yjac[0][1] |
---|
348 | #define YJ1I3 Yjac[0][2] |
---|
349 | #define YJ1I4 Yjac[0][3] |
---|
350 | #define YJ1I5 Yjac[0][4] |
---|
351 | #define YJ1I6 Yjac[0][5] |
---|
352 | #define YJ1I7 Yjac[0][6] |
---|
353 | #define YJ1I8 Yjac[0][7] |
---|
354 | #define YJ1I9 Yjac[0][8] |
---|
355 | #define YJ1I10 Yjac[0][9] |
---|
356 | #define YJ1I11 Yjac[0][10] |
---|
357 | #define YJ1I12 Yjac[0][11] |
---|
358 | #define YJ1I13 Yjac[0][12] |
---|
359 | #define YJ1I14 Yjac[0][13] |
---|
360 | #define YJ1I15 Yjac[0][14] |
---|
361 | #define YJ1I16 Yjac[0][15] |
---|
362 | #define YJ1I17 Yjac[0][16] |
---|
363 | #define YJ1I18 Yjac[0][17] |
---|
364 | #define YJ2I1 Yjac[1][0] |
---|
365 | #define YJ2I2 Yjac[1][1] |
---|
366 | #define YJ2I3 Yjac[1][2] |
---|
367 | #define YJ2I4 Yjac[1][3] |
---|
368 | #define YJ2I5 Yjac[1][4] |
---|
369 | #define YJ2I6 Yjac[1][5] |
---|
370 | #define YJ2I7 Yjac[1][6] |
---|
371 | #define YJ2I8 Yjac[1][7] |
---|
372 | #define YJ2I9 Yjac[1][8] |
---|
373 | #define YJ2I10 Yjac[1][9] |
---|
374 | #define YJ2I11 Yjac[1][10] |
---|
375 | #define YJ2I12 Yjac[1][11] |
---|
376 | #define YJ2I13 Yjac[1][12] |
---|
377 | #define YJ2I14 Yjac[1][13] |
---|
378 | #define YJ2I15 Yjac[1][14] |
---|
379 | #define YJ2I16 Yjac[1][15] |
---|
380 | #define YJ2I17 Yjac[1][16] |
---|
381 | #define YJ2I18 Yjac[1][17] |
---|
382 | #define YJ3I1 Yjac[2][0] |
---|
383 | #define YJ3I2 Yjac[2][1] |
---|
384 | #define YJ3I3 Yjac[2][2] |
---|
385 | #define YJ3I4 Yjac[2][3] |
---|
386 | #define YJ3I5 Yjac[2][4] |
---|
387 | #define YJ3I6 Yjac[2][5] |
---|
388 | #define YJ3I7 Yjac[2][6] |
---|
389 | #define YJ3I8 Yjac[2][7] |
---|
390 | #define YJ3I9 Yjac[2][8] |
---|
391 | #define YJ3I10 Yjac[2][9] |
---|
392 | #define YJ3I11 Yjac[2][10] |
---|
393 | #define YJ3I12 Yjac[2][11] |
---|
394 | #define YJ3I13 Yjac[2][12] |
---|
395 | #define YJ3I14 Yjac[2][13] |
---|
396 | #define YJ3I15 Yjac[2][14] |
---|
397 | #define YJ3I16 Yjac[2][15] |
---|
398 | #define YJ3I17 Yjac[2][16] |
---|
399 | #define YJ3I18 Yjac[2][17] |
---|
400 | #define YJ4I1 Yjac[3][0] |
---|
401 | #define YJ4I2 Yjac[3][1] |
---|
402 | #define YJ4I3 Yjac[3][2] |
---|
403 | #define YJ4I4 Yjac[3][3] |
---|
404 | #define YJ4I5 Yjac[3][4] |
---|
405 | #define YJ4I6 Yjac[3][5] |
---|
406 | #define YJ4I7 Yjac[3][6] |
---|
407 | #define YJ4I8 Yjac[3][7] |
---|
408 | #define YJ4I9 Yjac[3][8] |
---|
409 | #define YJ4I10 Yjac[3][9] |
---|
410 | #define YJ4I11 Yjac[3][10] |
---|
411 | #define YJ4I12 Yjac[3][11] |
---|
412 | #define YJ4I13 Yjac[3][12] |
---|
413 | #define YJ4I14 Yjac[3][13] |
---|
414 | #define YJ4I15 Yjac[3][14] |
---|
415 | #define YJ4I16 Yjac[3][15] |
---|
416 | #define YJ4I17 Yjac[3][16] |
---|
417 | #define YJ4I18 Yjac[3][17] |
---|
418 | #define YJ5I1 Yjac[4][0] |
---|
419 | #define YJ5I2 Yjac[4][1] |
---|
420 | #define YJ5I3 Yjac[4][2] |
---|
421 | #define YJ5I4 Yjac[4][3] |
---|
422 | #define YJ5I5 Yjac[4][4] |
---|
423 | #define YJ5I6 Yjac[4][5] |
---|
424 | #define YJ5I7 Yjac[4][6] |
---|
425 | #define YJ5I8 Yjac[4][7] |
---|
426 | #define YJ5I9 Yjac[4][8] |
---|
427 | #define YJ5I10 Yjac[4][9] |
---|
428 | #define YJ5I11 Yjac[4][10] |
---|
429 | #define YJ5I12 Yjac[4][11] |
---|
430 | #define YJ5I13 Yjac[4][12] |
---|
431 | #define YJ5I14 Yjac[4][13] |
---|
432 | #define YJ5I15 Yjac[4][14] |
---|
433 | #define YJ5I16 Yjac[4][15] |
---|
434 | #define YJ5I17 Yjac[4][16] |
---|
435 | #define YJ5I18 Yjac[4][17] |
---|
436 | #define YJ6I1 Yjac[5][0] |
---|
437 | #define YJ6I2 Yjac[5][1] |
---|
438 | #define YJ6I3 Yjac[5][2] |
---|
439 | #define YJ6I4 Yjac[5][3] |
---|
440 | #define YJ6I5 Yjac[5][4] |
---|
441 | #define YJ6I6 Yjac[5][5] |
---|
442 | #define YJ6I7 Yjac[5][6] |
---|
443 | #define YJ6I8 Yjac[5][7] |
---|
444 | #define YJ6I9 Yjac[5][8] |
---|
445 | #define YJ6I10 Yjac[5][9] |
---|
446 | #define YJ6I11 Yjac[5][10] |
---|
447 | #define YJ6I12 Yjac[5][11] |
---|
448 | #define YJ6I13 Yjac[5][12] |
---|
449 | #define YJ6I14 Yjac[5][13] |
---|
450 | #define YJ6I15 Yjac[5][14] |
---|
451 | #define YJ6I16 Yjac[5][15] |
---|
452 | #define YJ6I17 Yjac[5][16] |
---|
453 | #define YJ6I18 Yjac[5][17] |
---|
454 | #define YJ7I1 Yjac[6][0] |
---|
455 | #define YJ7I2 Yjac[6][1] |
---|
456 | #define YJ7I3 Yjac[6][2] |
---|
457 | #define YJ7I4 Yjac[6][3] |
---|
458 | #define YJ7I5 Yjac[6][4] |
---|
459 | #define YJ7I6 Yjac[6][5] |
---|
460 | #define YJ7I7 Yjac[6][6] |
---|
461 | #define YJ7I8 Yjac[6][7] |
---|
462 | #define YJ7I9 Yjac[6][8] |
---|
463 | #define YJ7I10 Yjac[6][9] |
---|
464 | #define YJ7I11 Yjac[6][10] |
---|
465 | #define YJ7I12 Yjac[6][11] |
---|
466 | #define YJ7I13 Yjac[6][12] |
---|
467 | #define YJ7I14 Yjac[6][13] |
---|
468 | #define YJ7I15 Yjac[6][14] |
---|
469 | #define YJ7I16 Yjac[6][15] |
---|
470 | #define YJ7I17 Yjac[6][16] |
---|
471 | #define YJ7I18 Yjac[6][17] |
---|
472 | #define YJ8I1 Yjac[7][0] |
---|
473 | #define YJ8I2 Yjac[7][1] |
---|
474 | #define YJ8I3 Yjac[7][2] |
---|
475 | #define YJ8I4 Yjac[7][3] |
---|
476 | #define YJ8I5 Yjac[7][4] |
---|
477 | #define YJ8I6 Yjac[7][5] |
---|
478 | #define YJ8I7 Yjac[7][6] |
---|
479 | #define YJ8I8 Yjac[7][7] |
---|
480 | #define YJ8I9 Yjac[7][8] |
---|
481 | #define YJ8I10 Yjac[7][9] |
---|
482 | #define YJ8I11 Yjac[7][10] |
---|
483 | #define YJ8I12 Yjac[7][11] |
---|
484 | #define YJ8I13 Yjac[7][12] |
---|
485 | #define YJ8I14 Yjac[7][13] |
---|
486 | #define YJ8I15 Yjac[7][14] |
---|
487 | #define YJ8I16 Yjac[7][15] |
---|
488 | #define YJ8I17 Yjac[7][16] |
---|
489 | #define YJ8I18 Yjac[7][17] |
---|
490 | double Ytbeta[YMAX_NBI]; //max table of global and common beta |
---|
491 | |
---|
492 | /*------- SOME OTHER AUTOMATIC GENERATION ------------------*/ |
---|
493 | |
---|
494 | struct Yst_obs { |
---|
495 | int time; |
---|
496 | int imod; |
---|
497 | int smod; |
---|
498 | int iaxe; |
---|
499 | int jaxe; |
---|
500 | int kaxe; |
---|
501 | YREAL vobs; |
---|
502 | }; |
---|
503 | struct Yst_obs Yaobs; |
---|
504 | int Yobs_insert(struct Yst_obs *aobs); |
---|
505 | |
---|
506 | /*------- GENERATION of NECESSARY PROTOTYPES -------------*/ |
---|
507 | double Ycostdiff(double dinov, double dcov); |
---|
508 | |
---|
509 | /*------- AUTOMATIC GENERATION of YaoModul class ----------*/ |
---|
510 | |
---|
511 | //////////// Begin of the Yao Class Yaor_float //////////// |
---|
512 | class Yaor_float |
---|
513 | { |
---|
514 | public: |
---|
515 | double Ystate[YNBALLTIME_T_float][YNBS_r_float]; |
---|
516 | double Ygrad[YNBALLTIME_T_float][YNBS_r_float]; |
---|
517 | double Ywish[YNBS_r_float]; |
---|
518 | double Ydelta[YNBALLTIME_T_float][YNBS_r_float]; |
---|
519 | |
---|
520 | //:=========> Constructor - Destructor ============ |
---|
521 | Yaor_float(){} |
---|
522 | ~Yaor_float(){} |
---|
523 | |
---|
524 | }; |
---|
525 | |
---|
526 | /*M_PCL */ |
---|
527 | class r_float:public Yaor_float |
---|
528 | { public: |
---|
529 | r_float(){}; |
---|
530 | ~r_float (){}; |
---|
531 | void forward (double x0,double x1,double x2,double x3); |
---|
532 | void backward(double x0,double x1,double x2,double x3); |
---|
533 | }; |
---|
534 | |
---|
535 | //////////// Begin of the Yao Class Yaour //////////// |
---|
536 | class Yaour |
---|
537 | { |
---|
538 | public: |
---|
539 | double Ystate[YNBALLTIME_T_float][YNBS_ur]; |
---|
540 | double Ygrad[YNBALLTIME_T_float][YNBS_ur]; |
---|
541 | double Ydelta[YNBALLTIME_T_float][YNBS_ur]; |
---|
542 | |
---|
543 | //:=========> Constructor - Destructor ============ |
---|
544 | Yaour(){} |
---|
545 | ~Yaour(){} |
---|
546 | |
---|
547 | }; |
---|
548 | |
---|
549 | /*M_PCL */ |
---|
550 | class ur:public Yaour |
---|
551 | { public: |
---|
552 | ur(){}; |
---|
553 | ~ur (){}; |
---|
554 | void forward (double x0,double x1,double x2,double x3,double x4,double x5,double x6,double x7,double x8,double x9,double x10,double x11,double x12,double x13,double x14,double x15,double x16,double x17); |
---|
555 | void backward(double x0,double x1,double x2,double x3,double x4,double x5,double x6,double x7,double x8,double x9,double x10,double x11,double x12,double x13,double x14,double x15,double x16,double x17); |
---|
556 | }; |
---|
557 | |
---|
558 | //////////// Begin of the Yao Class Yaouinter //////////// |
---|
559 | class Yaouinter |
---|
560 | { |
---|
561 | public: |
---|
562 | double Ystate[YNBALLTIME_T_float][YNBS_uinter]; |
---|
563 | double Ygrad[YNBALLTIME_T_float][YNBS_uinter]; |
---|
564 | double Ydelta[YNBALLTIME_T_float][YNBS_uinter]; |
---|
565 | |
---|
566 | //:=========> Constructor - Destructor ============ |
---|
567 | Yaouinter(){} |
---|
568 | ~Yaouinter(){} |
---|
569 | |
---|
570 | }; |
---|
571 | |
---|
572 | //////////// Begin of the Yao Class Yaoxinter //////////// |
---|
573 | class Yaoxinter |
---|
574 | { |
---|
575 | public: |
---|
576 | double Ystate[YNBALLTIME_T_float][YNBS_xinter]; |
---|
577 | double Ygrad[YNBALLTIME_T_float][YNBS_xinter]; |
---|
578 | double Ydelta[YNBALLTIME_T_float][YNBS_xinter]; |
---|
579 | |
---|
580 | //:=========> Constructor - Destructor ============ |
---|
581 | Yaoxinter(){} |
---|
582 | ~Yaoxinter(){} |
---|
583 | |
---|
584 | }; |
---|
585 | |
---|
586 | //////////// Begin of the Yao Class Yaou //////////// |
---|
587 | class Yaou |
---|
588 | { |
---|
589 | public: |
---|
590 | double Ystate[YNBS_u]; |
---|
591 | double Ygrad[YNBS_u]; |
---|
592 | double Yepsi[YNBS_u]; |
---|
593 | double Ywish[YNBS_u]; |
---|
594 | double Ydelta[1][YNBS_u]; |
---|
595 | |
---|
596 | //:=========> Constructor - Destructor ============ |
---|
597 | Yaou(){} |
---|
598 | ~Yaou(){} |
---|
599 | |
---|
600 | }; |
---|
601 | |
---|
602 | //////////// Begin of the Yao Class Yaov //////////// |
---|
603 | class Yaov |
---|
604 | { |
---|
605 | public: |
---|
606 | double Ystate[YNBS_v]; |
---|
607 | double Ygrad[YNBS_v]; |
---|
608 | double Yepsi[YNBS_v]; |
---|
609 | double Ywish[YNBS_v]; |
---|
610 | double Ydelta[1][YNBS_v]; |
---|
611 | |
---|
612 | //:=========> Constructor - Destructor ============ |
---|
613 | Yaov(){} |
---|
614 | ~Yaov(){} |
---|
615 | |
---|
616 | }; |
---|
617 | |
---|
618 | //////////// Begin of the Yao Class Yaolocate //////////// |
---|
619 | class Yaolocate |
---|
620 | { |
---|
621 | public: |
---|
622 | double Ystate[YNBALLTIME_T_float][YNBS_locate]; |
---|
623 | double Ygrad[YNBALLTIME_T_float][YNBS_locate]; |
---|
624 | double Ydelta[YNBALLTIME_T_float][YNBS_locate]; |
---|
625 | |
---|
626 | //:=========> Constructor - Destructor ============ |
---|
627 | Yaolocate(){} |
---|
628 | ~Yaolocate(){} |
---|
629 | |
---|
630 | }; |
---|
631 | |
---|
632 | /*M_PCL */ |
---|
633 | class locate:public Yaolocate |
---|
634 | { public: |
---|
635 | locate(){}; |
---|
636 | ~locate (){}; |
---|
637 | void forward (double x0,double x1); |
---|
638 | void backward(double x0,double x1); |
---|
639 | }; |
---|
640 | |
---|
641 | //€ € € € PROTOTYPES of AUTO-FUNCTIONS € € € € € € € € € € € |
---|
642 | void Yrazgrad_r_float(); |
---|
643 | void Ysetstate_r_float(); |
---|
644 | void Yrazgrad_ur(); |
---|
645 | void Ysetstate_ur(); |
---|
646 | void Yrazgrad_uinter(); |
---|
647 | void Ysetstate_uinter(); |
---|
648 | void Yrazgrad_xinter(); |
---|
649 | void Ysetstate_xinter(); |
---|
650 | void Yrazgrad_u(); |
---|
651 | void Ysetstate_u(); |
---|
652 | void Ysetepsi_u(); |
---|
653 | void Yadjust_u(); |
---|
654 | void Y3getstate_u(float x[]); |
---|
655 | void Y3valstate_u(); |
---|
656 | void Y3valgrad_u(float g[]); void Yrazgrad_v(); |
---|
657 | void Ysetstate_v(); |
---|
658 | void Ysetepsi_v(); |
---|
659 | void Yadjust_v(); |
---|
660 | void Y3getstate_v(float x[]); |
---|
661 | void Y3valstate_v(); |
---|
662 | void Y3valgrad_v(float g[]); void Yrazgrad_locate(); |
---|
663 | void Ysetstate_locate(); |
---|
664 | |
---|
665 | /*------------- DUE TO MULTI TRAJECTOIRIES --------------*/ |
---|
666 | #define YNBTRAJ 2 |
---|
667 | int Yforward_traj_T_float(int nbp); |
---|
668 | int Ybackward_traj_T_float(int nbp); |
---|
669 | int Ylinward_traj_T_float(int nbp); |
---|
670 | int Ydfward_traj_T_float(int modop, char *nmmod, int All, int KeKo, int koleft,float pdx, float ptol, int yi, int yj, int yk); |
---|
671 | int Ydftestijkt(int imod); |
---|
672 | int Ydftesttt(int itraj); |
---|
673 | |
---|
674 | /*------- GENERATION DU TABLEAU DES TRAJECTOIRES --------*/ |
---|
675 | struct Yst_traj YTabTraj[2] = { |
---|
676 | {"T_float", 'M', 1, 0.000000, 1.000000, 0.000000, 1, 12, 12.000000, Yforward_traj_T_float, Ybackward_traj_T_float, Ylinward_traj_T_float, Ydfward_traj_T_float, 1}, |
---|
677 | {"T_euler", 'M', 0, 0.000000, 1.000000, 0.000000, 0, 1, 1.000000, NULL, NULL, NULL, NULL, 0}, |
---|
678 | }; |
---|
679 | |
---|
680 | /*------- GENERATION DU TABLEAU DES ESPACES --------*/ |
---|
681 | #define YNBSPACE 3 |
---|
682 | struct Yst_space YTabSpace[3] = { |
---|
683 | {"S_float", 'M', 1, 0, 0, "T_float"}, |
---|
684 | {"S_euler", 'M', 87, 58, 0, "T_euler"}, |
---|
685 | {"S_eulerlocate", 'M', 1, 87, 58, "T_float"}, |
---|
686 | }; |
---|
687 | |
---|
688 | /*------ GENERATION DU TABLEAU DES OPERATEURS -------*/ |
---|
689 | #define YNBOPERA 0 |
---|
690 | struct Yst_opera YTabOpera[0] = { |
---|
691 | }; |
---|
692 | |
---|
693 | /*------- GENERATION D'UN TABLEAU d'ACCES AUX MODULES --------*/ |
---|
694 | #define YNBMODUL 7 |
---|
695 | struct Yst_modul YTabMod[7] = { |
---|
696 | {"r_float", *Yr_float, 1, 1, 0, 0, 4, 2, 13, 1, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S_float"}, |
---|
697 | {"ur", *Yur, 1, 1, 0, 0, 18, 2, 13, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S_float"}, |
---|
698 | {"uinter", *Yuinter, 1, 1, 0, 0, 0, 8, 13, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S_float"}, |
---|
699 | {"xinter", *Yxinter, 1, 1, 0, 0, 0, 8, 13, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S_float"}, |
---|
700 | {"u", *Yu, 2, 87, 58, 0, 0, 1, 0, 0, 1, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S_euler"}, |
---|
701 | {"v", *Yv, 2, 87, 58, 0, 0, 1, 0, 0, 1, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 0, "S_euler"}, |
---|
702 | {"locate", *Ylocate, 3, 1, 87, 58, 2, 1, 13, 0, 0, 0, 0, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1, "S_eulerlocate"}, |
---|
703 | }; |
---|
704 | |
---|
705 | /*------- GENERATION TABLEAU COUT_MODULES/OPERA --------*/ |
---|
706 | short YTabMocop[YNBMODUL][YNBOPERA] = { |
---|
707 | { }, |
---|
708 | { }, |
---|
709 | { }, |
---|
710 | { }, |
---|
711 | { }, |
---|
712 | { }, |
---|
713 | { }, |
---|
714 | }; |
---|
715 | |
---|
716 | //----- GENERATION d'UN TABLEAU de DEFINITIONS de VALEURS ----- |
---|
717 | #define YNBDEFVAL 4 |
---|
718 | struct Yst_defval YTabDefval[4] = { |
---|
719 | {"jtlag", "12"}, |
---|
720 | {"nlon", "87"}, |
---|
721 | {"nlat", "58"}, |
---|
722 | {"nfloat", "1"}, |
---|
723 | }; |
---|
724 | |
---|
725 | //€ € € € GENERATION AUTOMATIQUE DES include € € € € € € € € € € € |
---|
726 | #include "floater.h" |
---|
727 | |
---|
728 | #define forward void r_float::forward |
---|
729 | #define backward void r_float::backward |
---|
730 | #define flinward void r_float::flinward |
---|
731 | #define YS1Y Ystate[YTemps][0] |
---|
732 | #define YS1 Ystate[YTemps][0] |
---|
733 | #define YG1 Ygrad[YTemps][0] |
---|
734 | #define YS2Y Ystate[YTemps][1] |
---|
735 | #define YS2 Ystate[YTemps][1] |
---|
736 | #define YG2 Ygrad[YTemps][1] |
---|
737 | #include "r_float.h" |
---|
738 | #undef YS1Y |
---|
739 | #undef YS1 |
---|
740 | #undef YG1 |
---|
741 | #undef YS2Y |
---|
742 | #undef YS2 |
---|
743 | #undef YG2 |
---|
744 | #undef forward |
---|
745 | #undef backward |
---|
746 | #undef flinward |
---|
747 | |
---|
748 | #define forward void ur::forward |
---|
749 | #define backward void ur::backward |
---|
750 | #define flinward void ur::flinward |
---|
751 | #define YS1Y Ystate[YTemps][0] |
---|
752 | #define YS1 Ystate[YTemps][0] |
---|
753 | #define YG1 Ygrad[YTemps][0] |
---|
754 | #define YS2Y Ystate[YTemps][1] |
---|
755 | #define YS2 Ystate[YTemps][1] |
---|
756 | #define YG2 Ygrad[YTemps][1] |
---|
757 | #include "ur.h" |
---|
758 | #undef YS1Y |
---|
759 | #undef YS1 |
---|
760 | #undef YG1 |
---|
761 | #undef YS2Y |
---|
762 | #undef YS2 |
---|
763 | #undef YG2 |
---|
764 | #undef forward |
---|
765 | #undef backward |
---|
766 | #undef flinward |
---|
767 | |
---|
768 | #define forward void locate::forward |
---|
769 | #define backward void locate::backward |
---|
770 | #define flinward void locate::flinward |
---|
771 | #define YS1Y Ystate[YTemps][0] |
---|
772 | #define YS1 Ystate[YTemps][0] |
---|
773 | #define YG1 Ygrad[YTemps][0] |
---|
774 | #include "locate.h" |
---|
775 | #undef YS1Y |
---|
776 | #undef YS1 |
---|
777 | #undef YG1 |
---|
778 | #undef forward |
---|
779 | #undef backward |
---|
780 | #undef flinward |
---|
781 | |
---|
782 | //-------------- end Yao generation ----------------- |
---|