File: | zaeroCards.c |
Warning: | line 148, column 3 Value stored to 'status' is never read |
Press '?' to see keyboard shortcuts
Keyboard shortcuts:
1 | #include <string.h> |
2 | |
3 | #include "aimUtil.h" |
4 | #include "cardUtils.h" |
5 | #include "miscUtils.h" |
6 | #include "zaeroCards.h" |
7 | #include "zaeroUtils.h" |
8 | |
9 | |
10 | int zaero_card_aeroz(void *aimInfo, |
11 | FILE *fp, int acsid, char *xzsym, |
12 | char *flip, char *fmmunit, char *fmlunit, |
13 | double refc, double refb, double refs, |
14 | double refx, double refy, double refz, |
15 | feaFileTypeEnum formatType) |
16 | { |
17 | int status = CAPS_SUCCESS0; |
18 | |
19 | cardStruct card; |
20 | |
21 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
22 | |
23 | // begin card |
24 | status = card_initiate(&card, "AEROZ", formatType); |
25 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 25, __func__, 0); goto cleanup; }; |
26 | |
27 | // ACSID (Integer > 0 or Blank) |
28 | status = card_addInteger(&card, acsid); |
29 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 29, __func__, 0); goto cleanup; }; |
30 | |
31 | // XZSYM (Character), can be blank |
32 | status = card_addString(&card, xzsym); |
33 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 33, __func__, 0); goto cleanup; }; |
34 | |
35 | // FLIP (Character), can be blank |
36 | status = card_addString(&card, flip); |
37 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 37, __func__, 0); goto cleanup; }; |
38 | |
39 | // FMMUNIT(Character), can be blank |
40 | status = card_addString(&card, fmmunit); |
41 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 41, __func__, 0); goto cleanup; }; |
42 | |
43 | // FMLUNIT (Character), can be blank |
44 | status = card_addString(&card, fmlunit); |
45 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 45, __func__, 0); goto cleanup; }; |
46 | |
47 | // REFC (Real >= 0), can be blank |
48 | status = card_addDouble(&card, refc); |
49 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 49, __func__, 0); goto cleanup; }; |
50 | |
51 | // REFB (Real >= 0), can be blank |
52 | status = card_addDouble(&card, refb); |
53 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 53, __func__, 0); goto cleanup; }; |
54 | |
55 | // REFS (Real >= 0), can be blank |
56 | status = card_addDouble(&card, refs); |
57 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 57, __func__, 0); goto cleanup; }; |
58 | |
59 | // REFX, REFY, REFZ (Real) |
60 | status = card_addDouble(&card, refx); |
61 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 61, __func__, 0); goto cleanup; }; |
62 | status = card_addDouble(&card, refy); |
63 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 63, __func__, 0); goto cleanup; }; |
64 | status = card_addDouble(&card, refz); |
65 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 65, __func__, 0); goto cleanup; }; |
66 | |
67 | // write card to file |
68 | card_write(&card, fp); |
69 | |
70 | cleanup: |
71 | card_destroy(&card); |
72 | |
73 | return status; |
74 | } |
75 | |
76 | // write MKAEROZ card |
77 | int zaero_card_mkaeroz(void *aimInfo, |
78 | FILE *fp, int idmk, double mach, int method, int idflt, |
79 | const char *save, const char *filenm, int print, |
80 | int numFreq, double freq[], |
81 | feaFileTypeEnum formatType) |
82 | { |
83 | int status = CAPS_SUCCESS0; |
84 | |
85 | cardStruct card; |
86 | |
87 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
88 | |
89 | // begin card |
90 | status = card_initiate(&card, "MKAEROZ", formatType); |
91 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 91, __func__, 0); goto cleanup; }; |
92 | |
93 | // IDMK (Integer > 0) |
94 | status = card_addInteger(&card, idmk); |
95 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 95, __func__, 0); goto cleanup; }; |
96 | |
97 | // MACH (Real >= 0) |
98 | status = card_addDouble(&card, mach); |
99 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 99, __func__, 0); goto cleanup; }; |
100 | |
101 | // METHOD (Integer >= 0), can be blank |
102 | status = card_addInteger(&card, method); |
103 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 103, __func__, 0); goto cleanup; }; |
104 | |
105 | // IDFLT (Integer >= 0) |
106 | status = card_addInteger(&card, idflt); |
107 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 107, __func__, 0); goto cleanup; }; |
108 | |
109 | // SAVE (Characters or blank) |
110 | status = card_addString(&card, save); |
111 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 111, __func__, 0); goto cleanup; }; |
112 | |
113 | // FILENM (Characters or blank) |
114 | status = card_addString(&card, filenm); |
115 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 115, __func__, 0); goto cleanup; }; |
116 | |
117 | // PRINT (Integer) |
118 | status = card_addInteger(&card, print); |
119 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 119, __func__, 0); goto cleanup; }; |
120 | |
121 | // FREQi (Real) |
122 | status = card_addDoubleArray(&card, numFreq, freq); |
123 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 123, __func__, 0); goto cleanup; }; |
124 | |
125 | // write card to file |
126 | card_write(&card, fp); |
127 | |
128 | cleanup: |
129 | |
130 | card_destroy(&card); |
131 | |
132 | return status; |
133 | } |
134 | |
135 | // write FLUTTER card |
136 | int zaero_card_flutter(void *aimInfo, |
137 | FILE *fp, int setid, char *sym, int fix, int nmode, |
138 | int tabdmp, int mlist, int conmlst, int nkstep, |
139 | feaFileTypeEnum formatType) |
140 | { |
141 | int status = CAPS_SUCCESS0; |
142 | |
143 | cardStruct card; |
144 | |
145 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
146 | |
147 | // begin card |
148 | status = card_initiate(&card, "FLUTTER", formatType); |
Value stored to 'status' is never read | |
149 | |
150 | // SETID (Integer > 0) |
151 | status = card_addInteger(&card, setid); |
152 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 152, __func__, 0); goto cleanup; }; |
153 | |
154 | // SYM |
155 | status = card_addString(&card, sym); |
156 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 156, __func__, 0); goto cleanup; }; |
157 | |
158 | // FIX (Integer > 0) |
159 | status = card_addInteger(&card, fix); |
160 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 160, __func__, 0); goto cleanup; }; |
161 | |
162 | // NMODE (Integer >= 0) |
163 | status = card_addInteger(&card, nmode); |
164 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 164, __func__, 0); goto cleanup; }; |
165 | |
166 | // TABDMP (Integer >= 0) |
167 | status = card_addInteger(&card, tabdmp); |
168 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 168, __func__, 0); goto cleanup; }; |
169 | |
170 | // MLIST (Integer >= 0), can be blank |
171 | status = card_addInteger(&card, mlist); |
172 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 172, __func__, 0); goto cleanup; }; |
173 | |
174 | // CONMLST (Integer >= 0), can be blank |
175 | status = card_addInteger(&card, conmlst); |
176 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 176, __func__, 0); goto cleanup; }; |
177 | |
178 | // NKSTEP (Integer >= 0), can be blank |
179 | status = card_addInteger(&card, nkstep); |
180 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 180, __func__, 0); goto cleanup; }; |
181 | |
182 | // write card to file |
183 | card_write(&card, fp); |
184 | |
185 | cleanup: |
186 | |
187 | card_destroy(&card); |
188 | |
189 | return status; |
190 | } |
191 | |
192 | // write FIXMDEN card |
193 | int zaero_card_fixmden(void *aimInfo, |
194 | FILE *fp, int setid, int idmk, double den, |
195 | char *ftmunit, char *ftlunit, double vref, int fluttf, |
196 | int print, int numVelocities, double *velocities, |
197 | feaFileTypeEnum formatType) |
198 | { |
199 | int status = CAPS_SUCCESS0; |
200 | |
201 | cardStruct card; |
202 | |
203 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
204 | |
205 | // begin card |
206 | card_initiate(&card, "FIXMDEN", formatType); |
207 | |
208 | // SETID (Integer > 0) |
209 | status = card_addInteger(&card, setid); |
210 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 210, __func__, 0); goto cleanup; }; |
211 | |
212 | // IDMK (Integer > 0) |
213 | status = card_addInteger(&card, idmk); |
214 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 214, __func__, 0); goto cleanup; }; |
215 | |
216 | // DEN (Real > 0.0) |
217 | status = card_addDouble(&card, den); |
218 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 218, __func__, 0); goto cleanup; }; |
219 | |
220 | // FTMUNIT (Character) |
221 | status = card_addString(&card, ftmunit); |
222 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 222, __func__, 0); goto cleanup; }; |
223 | |
224 | // FTLUNIT (Character) |
225 | status = card_addString(&card, ftlunit); |
226 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 226, __func__, 0); goto cleanup; }; |
227 | |
228 | // VREF (Real) |
229 | status = card_addDouble(&card,vref); |
230 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 230, __func__, 0); goto cleanup; }; |
231 | |
232 | // FLUTTF (Integer >= 0), can be blank |
233 | status = card_addInteger(&card, fluttf); |
234 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 234, __func__, 0); goto cleanup; }; |
235 | |
236 | // PRINT (Integer) |
237 | status = card_addInteger(&card, print); |
238 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 238, __func__, 0); goto cleanup; }; |
239 | |
240 | // Vi (Real > 0.0) // TODO: verify ascending order |
241 | status = card_addDoubleArray(&card, numVelocities, velocities); |
242 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 242, __func__, 0); goto cleanup; }; |
243 | |
244 | // write card to file |
245 | card_write(&card, fp); |
246 | |
247 | cleanup: |
248 | |
249 | card_destroy(&card); |
250 | |
251 | return status; |
252 | } |
253 | |
254 | // write TABDMP1 card |
255 | int zaero_card_tabdmp1(void *aimInfo, |
256 | FILE *fp, int tid, char *type, |
257 | int numDamping, |
258 | double *dampingFreq, |
259 | double *dampingValues, |
260 | feaFileTypeEnum formatType) |
261 | { |
262 | int status = CAPS_SUCCESS0; |
263 | |
264 | cardStruct card; |
265 | |
266 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
267 | |
268 | // begin card |
269 | status = card_initiate(&card, "TABDMP1", formatType); |
270 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 270, __func__, 0); goto cleanup; }; |
271 | |
272 | // TID |
273 | status = card_addInteger(&card, tid); |
274 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 274, __func__, 0); goto cleanup; }; |
275 | |
276 | // TYPE, can be blank |
277 | status = card_addString(&card, type); |
278 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 278, __func__, 0); goto cleanup; }; |
279 | |
280 | // 6 empty fields |
281 | for (int i = 0; i < 6; i++) { |
282 | card_addBlank(&card); |
283 | } |
284 | |
285 | // fi, gi |
286 | for (int i = 0; i < numDamping; i++) { |
287 | status = card_addDouble(&card, dampingFreq[i]); |
288 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 288, __func__, 0); goto cleanup; }; |
289 | |
290 | status = card_addDouble(&card, dampingValues[i]); |
291 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 291, __func__, 0); goto cleanup; }; |
292 | } |
293 | |
294 | // write card to file |
295 | card_write(&card, fp); |
296 | |
297 | cleanup: |
298 | |
299 | card_destroy(&card); |
300 | |
301 | return status; |
302 | } |
303 | |
304 | // write CAERO7 card |
305 | int zaero_card_caero7(void *aimInfo, |
306 | FILE *fp, int wid, char *label, int acoord, |
307 | int nspan, int nchord, int lspan, int ztaic, int pafoil7, |
308 | double rl[3], double rch, int lrchd, int attchr, int acordr, |
309 | double tl[3], double tch, int ltchd, int attcht, int acordt, |
310 | feaFileTypeEnum formatType) |
311 | { |
312 | int status = CAPS_SUCCESS0; |
313 | |
314 | cardStruct card; |
315 | |
316 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
317 | |
318 | // begin card |
319 | status = card_initiate(&card, "CAERO7", formatType); |
320 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 320, __func__, 0); goto cleanup; }; |
321 | |
322 | // WID (Integer > 0) |
323 | status = card_addInteger(&card, wid); |
324 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 324, __func__, 0); goto cleanup; }; |
325 | |
326 | // LABEL (Character) |
327 | status = card_addString(&card, label); |
328 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 328, __func__, 0); goto cleanup; }; |
329 | |
330 | // ACOORD (Integer >= 0 or Blank, default = 0) |
331 | status = card_addInteger(&card, acoord); |
332 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 332, __func__, 0); goto cleanup; }; |
333 | |
334 | // NSPAN (Integer >= 2) |
335 | status = card_addInteger(&card, nspan); |
336 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 336, __func__, 0); goto cleanup; }; |
337 | |
338 | // NCHORD (Integer >= 2) |
339 | status = card_addInteger(&card, nchord); |
340 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 340, __func__, 0); goto cleanup; }; |
341 | |
342 | // LSPAN (Integer >= 0) |
343 | status = card_addInteger(&card, lspan); |
344 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 344, __func__, 0); goto cleanup; }; |
345 | |
346 | // ZTAIC (Integer >= 0) |
347 | status = card_addInteger(&card, ztaic); |
348 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 348, __func__, 0); goto cleanup; }; |
349 | |
350 | // PAFOIL7 (Integer >= 0) |
351 | status = card_addInteger(&card, pafoil7); |
352 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 352, __func__, 0); goto cleanup; }; |
353 | |
354 | // XRL, YRL, ZRL (Real) |
355 | status = card_addDouble(&card, rl[0]); |
356 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 356, __func__, 0); goto cleanup; }; |
357 | status = card_addDouble(&card, rl[1]); |
358 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 358, __func__, 0); goto cleanup; }; |
359 | status = card_addDouble(&card, rl[2]); |
360 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 360, __func__, 0); goto cleanup; }; |
361 | |
362 | // RCH (Real) |
363 | status = card_addDouble(&card, rch); |
364 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 364, __func__, 0); goto cleanup; }; |
365 | |
366 | // LRCHD (Integer >= 0) |
367 | status = card_addInteger(&card, lrchd); |
368 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 368, __func__, 0); goto cleanup; }; |
369 | |
370 | // ATTCHR (Integer >= 0) |
371 | status = card_addInteger(&card, attchr); |
372 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 372, __func__, 0); goto cleanup; }; |
373 | |
374 | // ACORDR (Integer > 0 or Blank) |
375 | status = card_addInteger(&card, acordr); |
376 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 376, __func__, 0); goto cleanup; }; |
377 | |
378 | // <empty> |
379 | status = card_addBlank(&card); |
380 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 380, __func__, 0); goto cleanup; }; |
381 | |
382 | // XTL, YTL, ZTL (Real) |
383 | status = card_addDouble(&card, tl[0]); |
384 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 384, __func__, 0); goto cleanup; }; |
385 | status = card_addDouble(&card, tl[1]); |
386 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 386, __func__, 0); goto cleanup; }; |
387 | status = card_addDouble(&card, tl[2]); |
388 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 388, __func__, 0); goto cleanup; }; |
389 | |
390 | // TCH (Real) |
391 | status = card_addDouble(&card, tch); |
392 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 392, __func__, 0); goto cleanup; }; |
393 | |
394 | // LTCHD (Integer >= 0) |
395 | status = card_addInteger(&card, ltchd); |
396 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 396, __func__, 0); goto cleanup; }; |
397 | |
398 | // ATTCHT (Integer >= 0) |
399 | status = card_addInteger(&card, attcht); |
400 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 400, __func__, 0); goto cleanup; }; |
401 | |
402 | // ACORDT (Integer > 0 or Blank) |
403 | status = card_addInteger(&card, acordt); |
404 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 404, __func__, 0); goto cleanup; }; |
405 | |
406 | // write card to file |
407 | card_write(&card, fp); |
408 | |
409 | cleanup: |
410 | |
411 | card_destroy(&card); |
412 | |
413 | return status; |
414 | } |
415 | |
416 | // write SPLINE1 card |
417 | int zaero_card_spline1(void *aimInfo, |
418 | FILE *fp, int eid, char *model, int cp, int setk, int setg, double dz, double eps, |
419 | feaFileTypeEnum formatType) |
420 | { |
421 | int status = CAPS_SUCCESS0; |
422 | |
423 | cardStruct card; |
424 | |
425 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
426 | |
427 | // begin card |
428 | status = card_initiate(&card, "SPLINE1", formatType); |
429 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 429, __func__, 0); goto cleanup; }; |
430 | |
431 | // EID |
432 | status = card_addInteger(&card, eid); |
433 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 433, __func__, 0); goto cleanup; }; |
434 | |
435 | // MODEL (not used) |
436 | status = card_addString(&card, model); |
437 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 437, __func__, 0); goto cleanup; }; |
438 | |
439 | // CP |
440 | status = card_addInteger(&card, cp); |
441 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 441, __func__, 0); goto cleanup; }; |
442 | |
443 | // SETK |
444 | status = card_addInteger(&card, setk); |
445 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 445, __func__, 0); goto cleanup; }; |
446 | |
447 | // SETG |
448 | status = card_addInteger(&card, setg); |
449 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 449, __func__, 0); goto cleanup; }; |
450 | |
451 | // DZ |
452 | status = card_addDouble(&card, dz); |
453 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 453, __func__, 0); goto cleanup; }; |
454 | |
455 | // EPS |
456 | status = card_addDouble(&card, eps); |
457 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 457, __func__, 0); goto cleanup; }; |
458 | |
459 | // write card to file |
460 | card_write(&card, fp); |
461 | |
462 | cleanup: |
463 | |
464 | card_destroy(&card); |
465 | |
466 | return status; |
467 | } |
468 | |
469 | // write SPLINE3 card |
470 | int zaero_card_spline3(void *aimInfo, |
471 | FILE *fp, int eid, char *model, |
472 | int setk, int setg, double eps, |
473 | feaFileTypeEnum formatType) |
474 | { |
475 | int status = CAPS_SUCCESS0; |
476 | |
477 | cardStruct card; |
478 | |
479 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
480 | |
481 | // begin card |
482 | status = card_initiate(&card, "SPLINE3", formatType); |
483 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 483, __func__, 0); goto cleanup; }; |
484 | |
485 | // EID |
486 | status = card_addInteger(&card, eid); |
487 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 487, __func__, 0); goto cleanup; }; |
488 | |
489 | // MODEL (not used) |
490 | status = card_addString(&card, model); |
491 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 491, __func__, 0); goto cleanup; }; |
492 | |
493 | // CP (not used) |
494 | status = card_addBlank(&card); |
495 | |
496 | // SETK |
497 | status = card_addInteger(&card, setk); |
498 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 498, __func__, 0); goto cleanup; }; |
499 | |
500 | // SETG |
501 | status = card_addInteger(&card, setg); |
502 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 502, __func__, 0); goto cleanup; }; |
503 | |
504 | // DZ (not used) |
505 | status = card_addBlank(&card); |
506 | |
507 | // EPS |
508 | status = card_addDouble(&card, eps); |
509 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 509, __func__, 0); goto cleanup; }; |
510 | |
511 | // write card to file |
512 | card_write(&card, fp); |
513 | |
514 | cleanup: |
515 | |
516 | card_destroy(&card); |
517 | |
518 | return status; |
519 | } |
520 | |
521 | // write PANLST2 card |
522 | int zaero_card_panlst2(void *aimInfo, |
523 | FILE *fp, int setid, int macroid, int boxBegin, int boxEnd, |
524 | feaFileTypeEnum formatType) |
525 | { |
526 | int status = CAPS_SUCCESS0; |
527 | |
528 | cardStruct card; |
529 | |
530 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
531 | |
532 | // begin card |
533 | status = card_initiate(&card, "PANLST2", formatType); |
534 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 534, __func__, 0); goto cleanup; }; |
535 | |
536 | // SETID |
537 | status = card_addInteger(&card, setid); |
538 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 538, __func__, 0); goto cleanup; }; |
539 | |
540 | // MACROID |
541 | status = card_addInteger(&card, macroid); |
542 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 542, __func__, 0); goto cleanup; }; |
543 | |
544 | // BOX 1 |
545 | status = card_addInteger(&card, boxBegin); |
546 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 546, __func__, 0); goto cleanup; }; |
547 | |
548 | // THRU |
549 | status = card_addField(&card, "THRU", 1); |
550 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 550, __func__, 0); goto cleanup; }; |
551 | |
552 | // BOX 3 |
553 | status = card_addInteger(&card, boxEnd); |
554 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 554, __func__, 0); goto cleanup; }; |
555 | |
556 | // write card to file |
557 | card_write(&card, fp); |
558 | |
559 | cleanup: |
560 | |
561 | card_destroy(&card); |
562 | |
563 | return status; |
564 | } |
565 | |
566 | // write SET1 card |
567 | int zaero_card_set1(void *aimInfo, |
568 | FILE *fp, int sid, int numIntegers, int integers[], |
569 | feaFileTypeEnum formatType) |
570 | { |
571 | int status = CAPS_SUCCESS0; |
572 | |
573 | cardStruct card; |
574 | |
575 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
576 | |
577 | // begin card |
578 | status = card_initiate(&card, "SET1", formatType); |
579 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 579, __func__, 0); goto cleanup; }; |
580 | |
581 | // SID |
582 | status = card_addInteger(&card, sid); |
583 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 583, __func__, 0); goto cleanup; }; |
584 | |
585 | // Gi |
586 | status = card_addIntegerArray(&card, numIntegers, integers); |
587 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 587, __func__, 0); goto cleanup; }; |
588 | |
589 | // write card to file |
590 | card_write(&card, fp); |
591 | |
592 | cleanup: |
593 | |
594 | card_destroy(&card); |
595 | |
596 | return status; |
597 | } |
598 | |
599 | // write PLTAERO card |
600 | int zaero_card_pltaero(void *aimInfo, |
601 | FILE *fp, int setid, char *femgrid, int offset, |
602 | char *form, char *filenm, char *cell, char *vct, |
603 | feaFileTypeEnum formatType) |
604 | { |
605 | int status = CAPS_SUCCESS0; |
606 | |
607 | cardStruct card; |
608 | |
609 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
610 | |
611 | // begin card |
612 | status = card_initiate(&card, "PLTAERO", formatType); |
613 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 613, __func__, 0); goto cleanup; }; |
614 | |
615 | // SETID (Integer != 0) |
616 | status = card_addInteger(&card, setid); |
617 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 617, __func__, 0); goto cleanup; }; |
618 | |
619 | // FEMGRID (Character) |
620 | status = card_addString(&card, femgrid); |
621 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 621, __func__, 0); goto cleanup; }; |
622 | |
623 | // OFFSET (Integer >= 0, or Blank) |
624 | status = card_addInteger(&card, offset); |
625 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 625, __func__, 0); goto cleanup; }; |
626 | |
627 | // FORM (Character, Default = "TECPLOT") |
628 | status = card_addString(&card, form); |
629 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 629, __func__, 0); goto cleanup; }; |
630 | |
631 | // FILENM (Character) |
632 | status = card_addString(&card, filenm); |
633 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 633, __func__, 0); goto cleanup; }; |
634 | |
635 | // CELL (Character; Default = "NO") |
636 | status = card_addString(&card, cell); |
637 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 637, __func__, 0); goto cleanup; }; |
638 | |
639 | // VCT (Character, Default = "NO") |
640 | status = card_addString(&card, vct); |
641 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 641, __func__, 0); goto cleanup; }; |
642 | |
643 | // write card to file |
644 | card_write(&card, fp); |
645 | |
646 | cleanup: |
647 | |
648 | card_destroy(&card); |
649 | |
650 | return status; |
651 | } |
652 | |
653 | // write PLTFLUT card |
654 | int zaero_card_pltflut(void *aimInfo, |
655 | FILE *fp, int setid, int idflut, int mode, int ntime, |
656 | double maxdisp, char *form, char *filenm, char *aeronm, |
657 | feaFileTypeEnum formatType) |
658 | { |
659 | int status = CAPS_SUCCESS0; |
660 | |
661 | cardStruct card; |
662 | |
663 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
664 | |
665 | // begin card |
666 | status = card_initiate(&card, "PLTFLUT", formatType); |
667 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 667, __func__, 0); goto cleanup; }; |
668 | |
669 | // SETID (Integer > 0) |
670 | status = card_addInteger(&card, setid); |
671 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 671, __func__, 0); goto cleanup; }; |
672 | |
673 | // IDFLUT (Integer > 0) |
674 | status = card_addInteger(&card, idflut); |
675 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 675, __func__, 0); goto cleanup; }; |
676 | |
677 | // MODE (Integer > 0) |
678 | status = card_addInteger(&card, mode); |
679 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 679, __func__, 0); goto cleanup; }; |
680 | |
681 | // NTIME (Integer > 0, Default = 1) |
682 | status = card_addInteger(&card, ntime); |
683 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 683, __func__, 0); goto cleanup; }; |
684 | |
685 | // MAXDISP (Real > 0.0, Default = 1.0) |
686 | status = card_addDouble(&card, maxdisp); |
687 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 687, __func__, 0); goto cleanup; }; |
688 | |
689 | // FORM (Character, Default = "TECPLOT") |
690 | status = card_addString(&card, form); |
691 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 691, __func__, 0); goto cleanup; }; |
692 | |
693 | // FILENM (Character) |
694 | status = card_addString(&card, filenm); |
695 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 695, __func__, 0); goto cleanup; }; |
696 | |
697 | // AERONM (Character, default = "AEROGEOM.PAT") |
698 | status = card_addString(&card, aeronm); |
699 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 699, __func__, 0); goto cleanup; }; |
700 | |
701 | // write card to file |
702 | card_write(&card, fp); |
703 | |
704 | cleanup: |
705 | |
706 | card_destroy(&card); |
707 | |
708 | return status; |
709 | } |
710 | |
711 | // write PLTMODE card |
712 | int zaero_card_pltmode(void *aimInfo, |
713 | FILE *fp, int setid, char *sym, int mode, |
714 | double maxdisp, char *form, char *filenm, char *aeronm, |
715 | feaFileTypeEnum formatType) |
716 | { |
717 | int status = CAPS_SUCCESS0; |
718 | |
719 | cardStruct card; |
720 | |
721 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
722 | |
723 | // begin card |
724 | status = card_initiate(&card, "PLTMODE", formatType); |
725 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 725, __func__, 0); goto cleanup; }; |
726 | |
727 | // SETID (Integer > 0) |
728 | status = card_addInteger(&card, setid); |
729 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 729, __func__, 0); goto cleanup; }; |
730 | |
731 | // SYM (Character) |
732 | status = card_addString(&card, sym); |
733 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 733, __func__, 0); goto cleanup; }; |
734 | |
735 | // MODE (Integer > 0) |
736 | status = card_addInteger(&card, mode); |
737 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 737, __func__, 0); goto cleanup; }; |
738 | |
739 | // TYPE (NOT USED) |
740 | status = card_addBlank(&card); |
741 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 741, __func__, 0); goto cleanup; }; |
742 | |
743 | // MAXDISP (Real > 0.0, Default = 1.0) |
744 | status = card_addDouble(&card, maxdisp); |
745 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 745, __func__, 0); goto cleanup; }; |
746 | |
747 | // FORM (Character, Default = "TECPLOT") |
748 | status = card_addString(&card, form); |
749 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 749, __func__, 0); goto cleanup; }; |
750 | |
751 | // FILENM (Character) |
752 | status = card_addString(&card, filenm); |
753 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 753, __func__, 0); goto cleanup; }; |
754 | |
755 | // AERONM (Character, default = "AEROGEOM.PAT") |
756 | status = card_addString(&card, aeronm); |
757 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 757, __func__, 0); goto cleanup; }; |
758 | |
759 | // write card to file |
760 | card_write(&card, fp); |
761 | |
762 | cleanup: |
763 | |
764 | card_destroy(&card); |
765 | |
766 | return status; |
767 | } |
768 | |
769 | // write PLTTRIM card |
770 | int zaero_card_plttrim(void *aimInfo, |
771 | FILE *fp, int setid, int idtrim, char *flex, char *type, |
772 | char *form, char *filenm, double scale, char *aeronm, |
773 | feaFileTypeEnum formatType) |
774 | { |
775 | int status = CAPS_SUCCESS0; |
776 | |
777 | int numTypeOptions = 6; |
778 | char *typeOptions[6] = {"FORCE", "AERO", "INERTIAL", // TODO: with current file format, "INERTIAL" will break |
779 | "CP", "DEFORM", "ELASTIC"}; |
780 | |
781 | cardStruct card; |
782 | |
783 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
784 | |
785 | // begin card |
786 | status = card_initiate(&card, "PLTTRIM", formatType); |
787 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 787, __func__, 0); goto cleanup; }; |
788 | |
789 | // SETID (Integer > 0) |
790 | status = card_addInteger(&card, setid); |
791 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 791, __func__, 0); goto cleanup; }; |
792 | |
793 | // IDTRIM (Integer > 0) |
794 | status = card_addInteger(&card, idtrim); |
795 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 795, __func__, 0); goto cleanup; }; |
796 | |
797 | // FLEX (Character, Default = "FLEX") |
798 | status = card_addString(&card, flex); |
799 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 799, __func__, 0); goto cleanup; }; |
800 | |
801 | // TYPE (Character) |
802 | if (!string_isInArray(type, numTypeOptions, typeOptions)) { |
803 | AIM_ERROR(aimInfo, "Unknown PLTTRIM TYPE field value: %s\n", type){ aim_message(aimInfo, CERROR, 0 , "zaeroCards.c", 803, __func__ , "Unknown PLTTRIM TYPE field value: %s\n", type); }; |
804 | status = CAPS_BADVALUE-311; |
805 | goto cleanup; |
806 | } |
807 | status = card_addString(&card, type); |
808 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 808, __func__, 0); goto cleanup; }; |
809 | |
810 | // FORM (Character, Default = "TECPLOT") |
811 | status = card_addString(&card, form); |
812 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 812, __func__, 0); goto cleanup; }; |
813 | |
814 | // FILENM (Character) |
815 | status = card_addString(&card, filenm); |
816 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 816, __func__, 0); goto cleanup; }; |
817 | |
818 | // SCALE (Real > 0.0, Default = 1.0) |
819 | status = card_addDouble(&card, scale); |
820 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 820, __func__, 0); goto cleanup; }; |
821 | |
822 | // AERONM (Character, default = "AEROGEOM.PAT") |
823 | status = card_addString(&card, aeronm); |
824 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 824, __func__, 0); goto cleanup; }; |
825 | |
826 | // write card to file |
827 | card_write(&card, fp); |
828 | |
829 | cleanup: |
830 | |
831 | card_destroy(&card); |
832 | |
833 | return status; |
834 | } |
835 | |
836 | // write PLTVG card |
837 | int zaero_card_pltvg(void *aimInfo, |
838 | FILE *fp, int setid, int idflut, int nmode, |
839 | char *xaxis, char *form, char *filenm, double refrho, |
840 | feaFileTypeEnum formatType) |
841 | { |
842 | int status = CAPS_SUCCESS0; |
843 | |
844 | cardStruct card; |
845 | |
846 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
847 | |
848 | // begin card |
849 | status = card_initiate(&card, "PLTVG", formatType); |
850 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 850, __func__, 0); goto cleanup; }; |
851 | |
852 | // SETID (Integer > 0) |
853 | status = card_addInteger(&card, setid); |
854 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 854, __func__, 0); goto cleanup; }; |
855 | |
856 | // IDFLUT (Integer > 0) |
857 | status = card_addInteger(&card, idflut); |
858 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 858, __func__, 0); goto cleanup; }; |
859 | |
860 | // NMODE (Integer, Default = all modes) |
861 | status = card_addInteger(&card, nmode); |
862 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 862, __func__, 0); goto cleanup; }; |
863 | |
864 | // XAXIS (Character) |
865 | status = card_addString(&card, xaxis); |
866 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 866, __func__, 0); goto cleanup; }; |
867 | |
868 | // FORM (Character, Default = "TABLE") |
869 | status = card_addString(&card, form); |
870 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 870, __func__, 0); goto cleanup; }; |
871 | |
872 | // FILENM (Character) |
873 | status = card_addString(&card, filenm); |
874 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 874, __func__, 0); goto cleanup; }; |
875 | |
876 | // REFRHO (Real > 0.0, Default = 0.0023769 slug/ft^3) |
877 | status = card_addDouble(&card, refrho); |
878 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 878, __func__, 0); goto cleanup; }; |
879 | |
880 | // write card to file |
881 | card_write(&card, fp); |
882 | |
883 | cleanup: |
884 | |
885 | card_destroy(&card); |
886 | |
887 | return status; |
888 | } |
889 | |
890 | // write TRIM card |
891 | int zaero_card_trim(void *aimInfo, |
892 | FILE *fp, int trimid, int idmk, double qinf, |
893 | int idobj, int idcons, double rho[3], double wtmass, |
894 | double weight, double I[6], char *trnacc, |
895 | char *nx, char *ny, char *nz, char *pdot, char *qdot, |
896 | char *rdot, int loadset, int numVars, int *varIDs, |
897 | char **vals, |
898 | feaFileTypeEnum formatType) |
899 | { |
900 | int status = CAPS_SUCCESS0; |
901 | |
902 | cardStruct card; |
903 | |
904 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
905 | |
906 | // begin card |
907 | status = card_initiate(&card, "TRIM", formatType); |
908 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 908, __func__, 0); goto cleanup; }; |
909 | |
910 | // TRIMID (Integer > 0) |
911 | status = card_addInteger(&card, trimid); |
912 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 912, __func__, 0); goto cleanup; }; |
913 | |
914 | // IDMK (Integer > 0) |
915 | status = card_addInteger(&card, idmk); |
916 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 916, __func__, 0); goto cleanup; }; |
917 | |
918 | // QINF (Real > 0.0) |
919 | status = card_addDouble(&card, qinf); |
920 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 920, __func__, 0); goto cleanup; }; |
921 | |
922 | // IDOBJ (Integer >= 0) |
923 | status = card_addInteger(&card, idobj); |
924 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 924, __func__, 0); goto cleanup; }; |
925 | |
926 | // IDCONS (Integer >= 0) |
927 | status = card_addInteger(&card, idcons); |
928 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 928, __func__, 0); goto cleanup; }; |
929 | |
930 | // RHOX, RHOY, RHOZ (Real) |
931 | status = card_addDouble(&card, rho[0]); |
932 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 932, __func__, 0); goto cleanup; }; |
933 | status = card_addDouble(&card, rho[1]); |
934 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 934, __func__, 0); goto cleanup; }; |
935 | status = card_addDouble(&card, rho[2]); |
936 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 936, __func__, 0); goto cleanup; }; |
937 | |
938 | // WTMASS (Real > 0.0) |
939 | status = card_addDouble(&card, wtmass); |
940 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 940, __func__, 0); goto cleanup; }; |
941 | |
942 | // WEIGHT (Real > 0.0) |
943 | status = card_addDouble(&card, weight); |
944 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 944, __func__, 0); goto cleanup; }; |
945 | |
946 | // IXX, IXY, IYY, IXZ, IYZ, IZZ (Real) |
947 | status = card_addDouble(&card, I[I11]); |
948 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 948, __func__, 0); goto cleanup; }; |
949 | status = card_addDouble(&card, I[I21]); |
950 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 950, __func__, 0); goto cleanup; }; |
951 | status = card_addDouble(&card, I[I22]); |
952 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 952, __func__, 0); goto cleanup; }; |
953 | status = card_addDouble(&card, I[I31]); |
954 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 954, __func__, 0); goto cleanup; }; |
955 | status = card_addDouble(&card, I[I32]); |
956 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 956, __func__, 0); goto cleanup; }; |
957 | status = card_addDouble(&card, I[I33]); |
958 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 958, __func__, 0); goto cleanup; }; |
959 | |
960 | // TRNACC (Character) |
961 | status = card_addString(&card, trnacc); |
962 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 962, __func__, 0); goto cleanup; }; |
963 | |
964 | // NX, NY, NZ (Character or Real) |
965 | status = card_addString(&card, nx); |
966 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 966, __func__, 0); goto cleanup; }; |
967 | status = card_addString(&card, ny); |
968 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 968, __func__, 0); goto cleanup; }; |
969 | status = card_addString(&card, nz); |
970 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 970, __func__, 0); goto cleanup; }; |
971 | |
972 | // PDOT, QDOT, RDOT (Character or Real) |
973 | status = card_addString(&card, pdot); |
974 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 974, __func__, 0); goto cleanup; }; |
975 | status = card_addString(&card, qdot); |
976 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 976, __func__, 0); goto cleanup; }; |
977 | status = card_addString(&card, rdot); |
978 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 978, __func__, 0); goto cleanup; }; |
979 | |
980 | // LOADSET (Integer >= 0) |
981 | status = card_addInteger(&card, loadset); |
982 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 982, __func__, 0); goto cleanup; }; |
983 | |
984 | // IDVARi (Integer > 0) |
985 | // VALi (Character or Real) |
986 | for (int i = 0; i < numVars; i++) { |
987 | status = card_addInteger(&card, varIDs[i]); |
988 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 988, __func__, 0); goto cleanup; }; |
989 | |
990 | status = card_addString(&card, vals[i]); |
991 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 991, __func__, 0); goto cleanup; }; |
992 | } |
993 | |
994 | // write card to file |
995 | card_write(&card, fp); |
996 | |
997 | cleanup: |
998 | |
999 | card_destroy(&card); |
1000 | |
1001 | return CAPS_SUCCESS0; |
1002 | } |
1003 | |
1004 | // write TRIMVAR card |
1005 | int zaero_card_trimvar(void *aimInfo, |
1006 | FILE *fp, int idvar, char *label, double lower, |
1007 | double upper, int trimlnk, char *dmi, char *sym, |
1008 | int guessInitial, double initial, char *dc[6], |
1009 | feaFileTypeEnum formatType) |
1010 | { |
1011 | int status = CAPS_SUCCESS0; |
1012 | |
1013 | cardStruct card; |
1014 | |
1015 | if (fp == NULL((void*)0)) return CAPS_IOERR-332; |
1016 | |
1017 | // begin card |
1018 | status = card_initiate(&card, "TRIMVAR", formatType); |
1019 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 1019, __func__, 0); goto cleanup; }; |
1020 | |
1021 | // IDVAR (Integer > 0) |
1022 | status = card_addInteger(&card, idvar); |
1023 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 1023, __func__, 0); goto cleanup; }; |
1024 | |
1025 | // LABEL (Character, cannot be Blank) |
1026 | status = card_addString(&card, label); |
1027 | AIM_STATUS(aimInfo, status)if (status != 0) { aim_status(aimInfo, status, "zaeroCards.c" , 1027, __func__, 0); goto cleanup; }; |
1028 | |
1029 | // write card to file |
1030 | card_write(&card, fp); |
1031 | |
1032 | cleanup: |
1033 | |
1034 | card_destroy(&card); |
1035 | |
1036 | return CAPS_SUCCESS0; |
1037 | } |