1 /*
2     Copyright (C) 1998  Dennis Roddeman
3     email: dennis.roddeman@feat.nl
4 
5     This program is free software; you can redistribute it and/or modify
6     it under the terms of the GNU General Public License as published by
7     the Free Software Foundation; either version 2 of the License, or
8     (at your option) any later version.
9 
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU General Public License for more details.
14 
15 
16     You should have received a copy of the GNU General Public License
17     along with this program; if not, write to the Free Software Foundation
18     59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA
19 */
20 
21 /* Modified on April 1st 2011 by Fernando Lorenzo to get the Von Mises Stresses
22  in the .res file
23 */
24 
25 #include "tochnog.h"
26 
27 double   *dbl_data[MDAT][MVERSION]; // pointer to actual double data
28 long int *int_data[MDAT][MVERSION]; // pointers to actual integer data
29 long int max_index[MDAT][MVERSION]; // maximum index allocated
30 long int no_index[MDAT];       // 0: index in datafile, 1: no index in data file
31 long int type[MDAT];           // INTEGER or DOUBLE_PRECISION
32 char     name[MDAT][MCHAR];    // "element", "node", ...
33 long int external[MDAT];       // 0: internal in TOCHNOG only, 1: also for datafile
34 long int data_length[MDAT];    // length (maximum for actual length)
35 long int fixed_length[MDAT];   // 0: all records same length; 1: records diff. length
36 long int data_class[MDAT];     // ELEMENT or NODE or so
37 long int data_required[MDAT];  // data required for this data (for the same index)
38 long int print_only[MDAT];     // 0: for reading and printing; 1: for printing only
39 long int version_all[MDAT];    // 1: with versions, 0: without versions
40 
db_initialize(long int dof_type[],long int dof_label[])41 void db_initialize( long int dof_type[], long int dof_label[] )
42 
43 {
44   long int iversion=0, idim=0, ipuknwn=0, iuknwn=0, idat=0, n=0, m=0;
45   char basename[MCHAR], str[MCHAR], tmpname[MCHAR];
46 
47     // fill data base administration with defaults
48   for ( idat=0; idat<MDAT; idat++ ) {
49     strcpy( name[idat], " " );
50     for ( iversion=0; iversion<MVERSION; iversion++ )
51       max_index[idat][iversion] = -1;
52   }
53   array_set( version_all, 0, MDAT );
54   array_set( data_class, -1, MDAT );
55   array_set( data_required, -1, MDAT );
56   array_set( data_length, 0, MDAT );
57   array_set( external, 1, MDAT );
58   array_set( fixed_length, 1, MDAT );
59   array_set( no_index, 0, MDAT );
60   array_set( type, 0, MDAT );
61   array_set( print_only, 0, MDAT );
62 
63   strcpy(name[ABOVE],"above" );
64 
65   strcpy(name[ABSOL],"absol" );
66 
67   strcpy(name[ADD],"add" );
68 
69   strcpy(name[ADD_ALWAYS],"add_always" );
70 
71   strcpy(name[ALL],"all" );
72 
73   strcpy(name[AREA],"area");
74 
75   strcpy(name[AREA_ELEMENT_GROUP],"area_element_group");
76   type[AREA_ELEMENT_GROUP] = INTEGER;
77   data_length[AREA_ELEMENT_GROUP] = 3;
78   data_class[AREA_ELEMENT_GROUP] = AREA;
79 
80   strcpy(name[AREA_ELEMENT_GROUP_SEQUENCE],"area_element_group_sequence");
81   type[AREA_ELEMENT_GROUP_SEQUENCE] = INTEGER;
82   data_length[AREA_ELEMENT_GROUP_SEQUENCE] = 1000;
83   fixed_length[AREA_ELEMENT_GROUP_SEQUENCE] = 0;
84   data_class[AREA_ELEMENT_GROUP_SEQUENCE] = AREA;
85   data_required[AREA_ELEMENT_GROUP_SEQUENCE] = AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP;
86 
87   strcpy(name[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENT],"area_element_group_sequence_element");
88   type[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENT] = INTEGER;
89   data_length[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENT] = 1;
90   data_class[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENT] = AREA;
91   data_required[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENT] = AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP;
92 
93   strcpy(name[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP],"area_element_group_sequence_elementgroup");
94   type[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = INTEGER;
95   data_length[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = DATA_ITEM_SIZE;
96   data_class[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = AREA;
97   fixed_length[AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = 0;
98 
99   strcpy(name[AREA_ELEMENT_GROUP_SEQUENCE_GEOMETRY],"area_element_group_sequence_geometry");
100   type[AREA_ELEMENT_GROUP_SEQUENCE_GEOMETRY] = INTEGER;
101   data_length[AREA_ELEMENT_GROUP_SEQUENCE_GEOMETRY] = 2;
102   data_class[AREA_ELEMENT_GROUP_SEQUENCE_GEOMETRY] = AREA;
103   data_required[AREA_ELEMENT_GROUP_SEQUENCE_GEOMETRY] = AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP;
104 
105   strcpy(name[AREA_ELEMENT_GROUP_SEQUENCE_TIME],"area_element_group_sequence_time");
106   type[AREA_ELEMENT_GROUP_SEQUENCE_TIME] = DOUBLE_PRECISION;
107   data_length[AREA_ELEMENT_GROUP_SEQUENCE_TIME] = DATA_ITEM_SIZE;
108   data_class[AREA_ELEMENT_GROUP_SEQUENCE_TIME] = AREA;
109   fixed_length[AREA_ELEMENT_GROUP_SEQUENCE_TIME] = 0;
110   data_required[AREA_ELEMENT_GROUP_SEQUENCE_GEOMETRY] = AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP;
111 
112   strcpy(name[AREA_NODE_DATAITEM],"area_node_dataitem");
113   type[AREA_NODE_DATAITEM] = INTEGER;
114   data_length[AREA_NODE_DATAITEM] = 3;
115   data_class[AREA_NODE_DATAITEM] = AREA;
116 
117   strcpy(name[AREA_NODE_DATAITEM_DOUBLE],"area_node_dataitem_double");
118   type[AREA_NODE_DATAITEM_DOUBLE] = DOUBLE_PRECISION;
119   data_length[AREA_NODE_DATAITEM_DOUBLE] = DATA_ITEM_SIZE;
120   data_class[AREA_NODE_DATAITEM_DOUBLE] = AREA;
121   fixed_length[AREA_NODE_DATAITEM_DOUBLE] = 0;
122   data_required[AREA_NODE_DATAITEM_DOUBLE] = AREA_NODE_DATAITEM;
123 
124   strcpy(name[AREA_NODE_DATAITEM_INTEGER],"area_node_dataitem_integer");
125   type[AREA_NODE_DATAITEM_INTEGER] = INTEGER;
126   data_length[AREA_NODE_DATAITEM_INTEGER] = DATA_ITEM_SIZE;
127   data_class[AREA_NODE_DATAITEM_INTEGER] = AREA;
128   fixed_length[AREA_NODE_DATAITEM_INTEGER] = 0;
129   data_required[AREA_NODE_DATAITEM_INTEGER] = AREA_NODE_DATAITEM;
130 
131   strcpy(name[ASM],"asm");
132 
133   strcpy(name[AVERAGE],"average");
134 
135   strcpy(name[BAR],"bar" );
136 
137   strcpy(name[BAR2],"bar2");
138 
139   strcpy(name[BAR3],"bar3");
140 
141   strcpy(name[BAR4],"bar4");
142 
143   strcpy(name[BCGS],"bcgs");
144 
145   strcpy(name[BEAM],"beam");
146 
147   strcpy(name[BEAM_ROTATION],"beam_rotation");
148 
149   strcpy(name[BELOW],"below" );
150 
151   strcpy(name[BICG],"bicg");
152 
153   strcpy(name[BJACOBI],"bjacobi");
154 
155   strcpy(name[BOUNDA],"bounda");
156 
157   strcpy(name[BOUNDA_FORCE],"bounda_force");
158   type[BOUNDA_FORCE] = INTEGER;
159   data_length[BOUNDA_FORCE] = MBOUNDA;
160   fixed_length[BOUNDA_FORCE] = 0;
161   data_class[BOUNDA_FORCE] = BOUNDA;
162 
163   strcpy(name[BOUNDA_SINE],"bounda_sine");
164   type[BOUNDA_SINE] = DOUBLE_PRECISION;
165   data_length[BOUNDA_SINE] = DATA_ITEM_SIZE;
166   fixed_length[BOUNDA_SINE] = 0;
167   data_class[BOUNDA_SINE] = BOUNDA;
168 
169   strcpy(name[BOUNDA_TIME],"bounda_time");
170   type[BOUNDA_TIME] = DOUBLE_PRECISION;
171   data_length[BOUNDA_TIME] = DATA_ITEM_SIZE;
172   fixed_length[BOUNDA_TIME] = 0;
173   data_class[BOUNDA_TIME] = BOUNDA;
174 
175   strcpy(name[BOUNDA_TIME_FILE],"bounda_time_file");
176   type[BOUNDA_TIME_FILE] = INTEGER;
177   data_length[BOUNDA_TIME_FILE] = 1;
178   data_class[BOUNDA_TIME_FILE] = BOUNDA;
179 
180   strcpy(name[BOUNDA_TIME_USER],"bounda_time_user");
181   type[BOUNDA_TIME_USER] = INTEGER;
182   data_length[BOUNDA_TIME_USER] = 1;
183   data_class[BOUNDA_TIME_USER] = BOUNDA;
184 
185   strcpy(name[BOUNDA_UNKNOWN],"bounda_unknown");
186   type[BOUNDA_UNKNOWN] = INTEGER;
187   data_length[BOUNDA_UNKNOWN] = MBOUNDA;
188   fixed_length[BOUNDA_UNKNOWN] = 0;
189   data_class[BOUNDA_UNKNOWN] = BOUNDA;
190 
191   strcpy(name[BRICK],"brick" );
192 
193   strcpy(name[CALCULATE_STRESSINTENSITYFACTOR],"calculate_stressintensityfactor");
194 
195   strcpy(name[CG],"cg");
196 
197   strcpy(name[CGS],"cgs");
198 
199   strcpy(name[CHANGE],"change");
200 
201   strcpy(name[CHANGE_DATAITEM],"change_dataitem");
202   type[CHANGE_DATAITEM] = INTEGER;
203   data_length[CHANGE_DATAITEM] = 4;
204 
205   strcpy(name[CHANGE_DATAITEM_TIME],"change_dataitem_time");
206   type[CHANGE_DATAITEM_TIME] = DOUBLE_PRECISION;
207   data_length[CHANGE_DATAITEM_TIME] = DATA_ITEM_SIZE;
208   fixed_length[CHANGE_DATAITEM_TIME] = 0;
209   data_required[CHANGE_DATAITEM_TIME] = CHANGE_DATAITEM;
210 
211   strcpy(name[CHANGE_DATAITEM_TIME_DISCRETE],"change_dataitem_time_discrete");
212   type[CHANGE_DATAITEM_TIME_DISCRETE] = INTEGER;
213   data_length[CHANGE_DATAITEM_TIME_DISCRETE] = 1;
214   data_required[CHANGE_DATAITEM_TIME_DISCRETE] = CHANGE_DATAITEM;
215 
216   strcpy(name[CHANGE_DATAITEM_TIME_USER],"change_dataitem_time_user");
217   type[CHANGE_DATAITEM_TIME_USER] = INTEGER;
218   data_length[CHANGE_DATAITEM_TIME_USER] = 1;
219 
220   strcpy(name[CHANGE_GEOMETRY],"change_geometry");
221   type[CHANGE_GEOMETRY] = INTEGER;
222   data_length[CHANGE_GEOMETRY] = 3;
223 
224   strcpy(name[CHANGE_GEOMETRY_TIME_USER],"change_geometry_time_user");
225   type[CHANGE_GEOMETRY_TIME_USER] = INTEGER;
226   data_length[CHANGE_GEOMETRY_TIME_USER] = 1;
227 
228   strcpy(name[CHEBYCHEV],"chebychev");
229 
230   strcpy(name[CHECK],"check" );
231 
232   strcpy(name[CHECK_COMBINATION],"check_combination");
233   type[CHECK_COMBINATION] = INTEGER;
234   data_length[CHECK_COMBINATION] = 1;
235   no_index[CHECK_COMBINATION] = 1;
236   data_class[CHECK_COMBINATION] = CHECK_COMBINATION;
237 
238   strcpy(name[CHECK_INDEX],"check_index" );
239 
240   strcpy(name[CHECK_NUMBER],"check_number" );
241 
242   strcpy(name[CIRCLE],"circle" );
243 
244   strcpy(name[CIRCLE_HOLLOW],"circle_hollow" );
245 
246   strcpy(name[COMPOSITE],"composite");
247 
248   strcpy(name[CONDIF],"condif");
249 
250   strcpy(name[CONDIF_CONVECTION],"condif_convection");
251   type[CONDIF_CONVECTION] = DOUBLE_PRECISION;
252   data_length[CONDIF_CONVECTION] = 2;
253   data_class[CONDIF_CONVECTION] = CONDIF;
254 
255   strcpy(name[CONDIF_CONVECTION_GEOMETRY],"condif_convection_geometry");
256   type[CONDIF_CONVECTION_GEOMETRY] = INTEGER;
257   data_length[CONDIF_CONVECTION_GEOMETRY] = DATA_ITEM_SIZE;
258   fixed_length[CONDIF_CONVECTION_GEOMETRY] = 0;
259   data_class[CONDIF_CONVECTION_GEOMETRY] = CONDIF;
260   data_required[CONDIF_CONVECTION_GEOMETRY] = CONDIF_CONVECTION;
261 
262   strcpy(name[CONDIF_RADIATION],"condif_radiation");
263   type[CONDIF_RADIATION] = DOUBLE_PRECISION;
264   data_length[CONDIF_RADIATION] = 2;
265   data_class[CONDIF_RADIATION] = CONDIF;
266 
267   strcpy(name[CONDIF_RADIATION_GEOMETRY],"condif_radiation_geometry");
268   type[CONDIF_RADIATION_GEOMETRY] = INTEGER;
269   data_length[CONDIF_RADIATION_GEOMETRY] = DATA_ITEM_SIZE;
270   fixed_length[CONDIF_RADIATION_GEOMETRY] = 0;
271   data_class[CONDIF_RADIATION_GEOMETRY] = CONDIF;
272   data_required[CONDIF_RADIATION_GEOMETRY] = CONDIF_RADIATION;
273 
274   strcpy(name[CONDIF_TEMPERATURE],"condif_temperature");
275 
276   strcpy(name[CONTACT],"contact");
277 
278   strcpy(name[CONTACTSPRING],"contactspring");
279 
280   strcpy(name[CONTACT_FRICTION],"contact_friction");
281   type[CONTACT_FRICTION] = DOUBLE_PRECISION;
282   data_length[CONTACT_FRICTION] = 1;
283   no_index[CONTACT_FRICTION] = 1;
284   data_class[CONTACT_FRICTION] = CONTACT;
285 
286   strcpy(name[CONTACT_GEOMETRY],"contact_geometry");
287   type[CONTACT_GEOMETRY] = INTEGER;
288   data_length[CONTACT_GEOMETRY] = 2;
289   data_class[CONTACT_GEOMETRY] = CONTACT;
290 
291   strcpy(name[CONTACT_GEOMETRY_SWITCH],"contact_geometry_switch");
292   type[CONTACT_GEOMETRY_SWITCH] = INTEGER;
293   data_length[CONTACT_GEOMETRY_SWITCH] = 1;
294   data_class[CONTACT_GEOMETRY_SWITCH] = CONTACT;
295   data_required[CONTACT_GEOMETRY_SWITCH] = CONTACT_GEOMETRY;
296 
297   strcpy(name[CONTACT_HEATGENERATION],"contact_heatgeneration");
298   type[CONTACT_HEATGENERATION] = DOUBLE_PRECISION;
299   data_length[CONTACT_HEATGENERATION] = 1;
300   no_index[CONTACT_HEATGENERATION] = 1;
301   data_class[CONTACT_HEATGENERATION] = CONTACT;
302 
303   strcpy(name[CONTACT_PENALTY_PRESSURE],"contact_penalty_pressure");
304   type[CONTACT_PENALTY_PRESSURE] = DOUBLE_PRECISION;
305   data_length[CONTACT_PENALTY_PRESSURE] = 1;
306   no_index[CONTACT_PENALTY_PRESSURE] = 1;
307   data_class[CONTACT_PENALTY_PRESSURE] = CONTACT;
308 
309   strcpy(name[CONTACT_PENALTY_TEMPERATURE],"contact_penalty_temperature");
310   type[CONTACT_PENALTY_TEMPERATURE] = DOUBLE_PRECISION;
311   data_length[CONTACT_PENALTY_TEMPERATURE] = 1;
312   no_index[CONTACT_PENALTY_TEMPERATURE] = 1;
313   data_class[CONTACT_PENALTY_TEMPERATURE] = CONTACT;
314 
315   strcpy(name[CONTACT_PENALTY_VELOCITY],"contact_penalty_velocity");
316   type[CONTACT_PENALTY_VELOCITY] = DOUBLE_PRECISION;
317   data_length[CONTACT_PENALTY_VELOCITY] = 1;
318   no_index[CONTACT_PENALTY_VELOCITY] = 1;
319   data_class[CONTACT_PENALTY_VELOCITY] = CONTACT;
320 
321   strcpy(name[CONTACT_RELAXATION],"contact_relaxation");
322   type[CONTACT_RELAXATION] = DOUBLE_PRECISION;
323   data_length[CONTACT_RELAXATION] = 1;
324   no_index[CONTACT_RELAXATION] = 1;
325   data_class[CONTACT_RELAXATION] = CONTACT;
326 
327   strcpy(name[CONTACT_STICK],"contact_stick");
328   type[CONTACT_STICK] = INTEGER;
329   data_length[CONTACT_STICK] = 1;
330   no_index[CONTACT_STICK] = 1;
331   data_class[CONTACT_STICK] = CONTACT;
332 
333   strcpy(name[CONTROL_CRACK],"control_crack");
334   type[CONTROL_CRACK] = INTEGER;
335   data_length[CONTROL_CRACK] = 1;
336   data_class[CONTROL_CRACK] = CONTROL;
337 
338   strcpy(name[CONTROL_DATA_DELETE],"control_data_delete");
339   type[CONTROL_DATA_DELETE] = INTEGER;
340   data_length[CONTROL_DATA_DELETE] = DATA_ITEM_SIZE;
341   fixed_length[CONTROL_DATA_DELETE] = 0;
342   data_class[CONTROL_DATA_DELETE] = CONTROL;
343 
344   strcpy(name[CONTROL_DATA_INITELDOF_GEOMETRY],"control_data_initeldof_geometry");
345   type[CONTROL_DATA_INITELDOF_GEOMETRY] = INTEGER;
346   data_length[CONTROL_DATA_INITELDOF_GEOMETRY] = 2;
347   data_class[CONTROL_DATA_INITELDOF_GEOMETRY] = CONTROL;
348 
349   strcpy(name[CONTROL_DATA_PUT],"control_data_put");
350   type[CONTROL_DATA_PUT] = INTEGER;
351   data_length[CONTROL_DATA_PUT] = DATA_ITEM_SIZE;
352   fixed_length[CONTROL_DATA_PUT] = 0;
353   data_class[CONTROL_DATA_PUT] = CONTROL;
354 
355   strcpy(name[CONTROL_DATA_PUT_DOUBLE],"control_data_put_double");
356   type[CONTROL_DATA_PUT_DOUBLE] = DOUBLE_PRECISION;
357   data_length[CONTROL_DATA_PUT_DOUBLE] = DATA_ITEM_SIZE;
358   fixed_length[CONTROL_DATA_PUT_DOUBLE] = 0;
359   data_class[CONTROL_DATA_PUT_DOUBLE] = CONTROL;
360   data_required[CONTROL_DATA_PUT_DOUBLE] = CONTROL_DATA_PUT;
361 
362   strcpy(name[CONTROL_DATA_PUT_DOUBLE_NODE],"control_data_put_double_node");
363   type[CONTROL_DATA_PUT_DOUBLE_NODE] = DOUBLE_PRECISION;
364   data_length[CONTROL_DATA_PUT_DOUBLE_NODE] = DATA_ITEM_SIZE;
365   fixed_length[CONTROL_DATA_PUT_DOUBLE_NODE] = 0;
366   data_class[CONTROL_DATA_PUT_DOUBLE_NODE] = CONTROL;
367   data_required[CONTROL_DATA_PUT_DOUBLE_NODE] = CONTROL_DATA_PUT;
368 
369   strcpy(name[CONTROL_DATA_PUT_INTEGER],"control_data_put_integer");
370   type[CONTROL_DATA_PUT_INTEGER] = INTEGER;
371   data_length[CONTROL_DATA_PUT_INTEGER] = DATA_ITEM_SIZE;
372   fixed_length[CONTROL_DATA_PUT_INTEGER] = 0;
373   data_class[CONTROL_DATA_PUT_INTEGER] = CONTROL;
374   data_required[CONTROL_DATA_PUT_INTEGER] = CONTROL_DATA_PUT;
375 
376   strcpy(name[CONTROL_DISTRIBUTE],"control_distribute");
377   type[CONTROL_DISTRIBUTE] = INTEGER;
378   data_length[CONTROL_DISTRIBUTE] = DATA_ITEM_SIZE;
379   data_class[CONTROL_DISTRIBUTE] = CONTROL;
380   fixed_length[CONTROL_DISTRIBUTE] = 0;
381 
382   strcpy(name[CONTROL_DISTRIBUTE_VALUES],"control_distribute_values");
383   type[CONTROL_DISTRIBUTE_VALUES] = DOUBLE_PRECISION;
384   data_length[CONTROL_DISTRIBUTE_VALUES] = DATA_ITEM_SIZE;
385   data_class[CONTROL_DISTRIBUTE_VALUES] = CONTROL;
386   fixed_length[CONTROL_DISTRIBUTE_VALUES] = 0;
387   data_required[CONTROL_DISTRIBUTE_VALUES] = CONTROL_DISTRIBUTE;
388 
389   strcpy(name[CONTROL_EIGEN],"control_eigen");
390   type[CONTROL_EIGEN] = INTEGER;
391   data_length[CONTROL_EIGEN] = 2;
392   data_class[CONTROL_EIGEN] = CONTROL;
393 
394   strcpy(name[CONTROL_EIGEN_SCALE],"control_eigen_scale");
395   type[CONTROL_EIGEN_SCALE] = DOUBLE_PRECISION;
396   data_length[CONTROL_EIGEN_SCALE] = 1;
397   data_class[CONTROL_EIGEN_SCALE] = CONTROL;
398   data_required[CONTROL_EIGEN_SCALE] = CONTROL_EIGEN;
399 
400   strcpy(name[CONTROL_EIGEN_VALUES],"control_eigen_values");
401   type[CONTROL_EIGEN_VALUES] = DOUBLE_PRECISION;
402   data_length[CONTROL_EIGEN_VALUES] = DATA_ITEM_SIZE;
403   fixed_length[CONTROL_EIGEN_VALUES] = 0;
404   data_class[CONTROL_EIGEN_VALUES] = CONTROL;
405   no_index[CONTROL_EIGEN_VALUES] = 1;
406 
407   strcpy(name[CONTROL_MATERI_DIFFUSION],"control_materi_diffusion");
408   type[CONTROL_MATERI_DIFFUSION] = INTEGER;
409   data_length[CONTROL_MATERI_DIFFUSION] = 1;
410   data_class[CONTROL_MATERI_DIFFUSION] = CONTROL;
411 
412   strcpy(name[CONTROL_MESH_ADJUST_GEOMETRY],"control_mesh_adjust_geometry");
413   type[CONTROL_MESH_ADJUST_GEOMETRY] = INTEGER;
414   data_length[CONTROL_MESH_ADJUST_GEOMETRY] = 4;
415   data_class[CONTROL_MESH_ADJUST_GEOMETRY] = CONTROL;
416 
417   strcpy(name[CONTROL_MESH_DELETE_GEOMETRY],"control_mesh_delete_geometry");
418   type[CONTROL_MESH_DELETE_GEOMETRY] = INTEGER;
419   data_length[CONTROL_MESH_DELETE_GEOMETRY] = 2;
420   data_class[CONTROL_MESH_DELETE_GEOMETRY] = CONTROL;
421 
422   strcpy(name[CONTROL_MESH_DELETE_GEOMETRY_ELEMENT],"control_mesh_delete_geometry_element");
423   type[CONTROL_MESH_DELETE_GEOMETRY_ELEMENT] = INTEGER;
424   data_length[CONTROL_MESH_DELETE_GEOMETRY_ELEMENT] = DATA_ITEM_SIZE;
425   data_class[CONTROL_MESH_DELETE_GEOMETRY_ELEMENT] = CONTROL;
426   fixed_length[CONTROL_MESH_DELETE_GEOMETRY_ELEMENT] = 0;
427   data_required[CONTROL_MESH_DELETE_GEOMETRY_ELEMENT] = CONTROL_MESH_DELETE_GEOMETRY;
428 
429   strcpy(name[CONTROL_MESH_DELETE_GEOMETRY_ELEMENTGROUP],"control_mesh_delete_geometry_elementgroup");
430   type[CONTROL_MESH_DELETE_GEOMETRY_ELEMENTGROUP] = INTEGER;
431   data_length[CONTROL_MESH_DELETE_GEOMETRY_ELEMENTGROUP] = DATA_ITEM_SIZE;
432   data_class[CONTROL_MESH_DELETE_GEOMETRY_ELEMENTGROUP] = CONTROL;
433   fixed_length[CONTROL_MESH_DELETE_GEOMETRY_ELEMENTGROUP] = 0;
434   data_required[CONTROL_MESH_DELETE_GEOMETRY_ELEMENTGROUP] = CONTROL_MESH_DELETE_GEOMETRY;
435 
436   strcpy(name[CONTROL_MESH_DELETE_GEOMETRY_FACTOR],"control_mesh_delete_geometry_factor");
437   type[CONTROL_MESH_DELETE_GEOMETRY_FACTOR] = DOUBLE_PRECISION;
438   data_length[CONTROL_MESH_DELETE_GEOMETRY_FACTOR] = 2;
439   data_class[CONTROL_MESH_DELETE_GEOMETRY_FACTOR] = CONTROL;
440   fixed_length[CONTROL_MESH_DELETE_GEOMETRY_FACTOR] = 0;
441   data_required[CONTROL_MESH_DELETE_GEOMETRY_FACTOR] = CONTROL_MESH_DELETE_GEOMETRY;
442 
443   strcpy(name[CONTROL_MESH_DELETE_GEOMETRY_MOVENODES],"control_mesh_delete_geometry_movenodes");
444   type[CONTROL_MESH_DELETE_GEOMETRY_MOVENODES] = INTEGER;
445   data_length[CONTROL_MESH_DELETE_GEOMETRY_MOVENODES] = 1;
446   data_class[CONTROL_MESH_DELETE_GEOMETRY_MOVENODES] = CONTROL;
447   data_required[CONTROL_MESH_DELETE_GEOMETRY_MOVENODES] = CONTROL_MESH_DELETE_GEOMETRY;
448 
449   strcpy(name[CONTROL_MESH_DELETE_SMALL],"control_mesh_delete_small");
450   type[CONTROL_MESH_DELETE_SMALL] = DOUBLE_PRECISION;
451   data_length[CONTROL_MESH_DELETE_SMALL] = 1;
452   data_class[CONTROL_MESH_DELETE_SMALL] = CONTROL;
453 
454   strcpy(name[CONTROL_MESH_EXTRUDE],"control_mesh_extrude");
455   type[CONTROL_MESH_EXTRUDE] = DOUBLE_PRECISION;
456   data_length[CONTROL_MESH_EXTRUDE] = DATA_ITEM_SIZE;
457   fixed_length[CONTROL_MESH_EXTRUDE] = 0;
458   data_class[CONTROL_MESH_EXTRUDE] = CONTROL;
459 
460   strcpy(name[CONTROL_MESH_EXTRUDE_N],"control_mesh_extrude_n");
461   type[CONTROL_MESH_EXTRUDE_N] = INTEGER;
462   data_length[CONTROL_MESH_EXTRUDE_N] = DATA_ITEM_SIZE;
463   fixed_length[CONTROL_MESH_EXTRUDE_N] = 0;
464   data_class[CONTROL_MESH_EXTRUDE_N] = CONTROL;
465   data_required[CONTROL_MESH_EXTRUDE_N] = CONTROL_MESH_EXTRUDE;
466 
467   strcpy(name[CONTROL_MESH_GENERATE_BEAM],"control_mesh_generate_beam");
468   type[CONTROL_MESH_GENERATE_BEAM] = INTEGER;
469   data_length[CONTROL_MESH_GENERATE_BEAM] = 3;
470   data_class[CONTROL_MESH_GENERATE_BEAM] = CONTROL;
471 
472   strcpy(name[CONTROL_MESH_GENERATE_CONTACTSPRING],"control_mesh_generate_contactspring");
473   type[CONTROL_MESH_GENERATE_CONTACTSPRING] = INTEGER;
474   data_length[CONTROL_MESH_GENERATE_CONTACTSPRING] = 3;
475   data_class[CONTROL_MESH_GENERATE_CONTACTSPRING] = CONTROL;
476 
477   strcpy(name[CONTROL_MESH_GENERATE_CONTACTSPRING_ELEMENT],"control_mesh_generate_contactspring_element");
478   type[CONTROL_MESH_GENERATE_CONTACTSPRING_ELEMENT] = INTEGER;
479   data_length[CONTROL_MESH_GENERATE_CONTACTSPRING_ELEMENT] = 2;
480   data_class[CONTROL_MESH_GENERATE_CONTACTSPRING_ELEMENT] = CONTROL;
481 
482   strcpy(name[CONTROL_MESH_GENERATE_SPRING1],"control_mesh_generate_spring1");
483   type[CONTROL_MESH_GENERATE_SPRING1] = INTEGER;
484   data_length[CONTROL_MESH_GENERATE_SPRING1] = 3;
485   data_class[CONTROL_MESH_GENERATE_SPRING1] = CONTROL;
486 
487   strcpy(name[CONTROL_MESH_GENERATE_SPRING2],"control_mesh_generate_spring2");
488   type[CONTROL_MESH_GENERATE_SPRING2] = INTEGER;
489   data_length[CONTROL_MESH_GENERATE_SPRING2] = 3;
490   data_class[CONTROL_MESH_GENERATE_SPRING2] = CONTROL;
491 
492   strcpy(name[CONTROL_MESH_GENERATE_TRUSS],"control_mesh_generate_truss");
493   type[CONTROL_MESH_GENERATE_TRUSS] = INTEGER;
494   data_length[CONTROL_MESH_GENERATE_TRUSS] = 3;
495   data_class[CONTROL_MESH_GENERATE_TRUSS] = CONTROL;
496 
497   strcpy(name[CONTROL_MESH_GENERATE_TRUSSBEAM],"control_mesh_generate_trussbeam");
498   type[CONTROL_MESH_GENERATE_TRUSSBEAM] = INTEGER;
499   data_length[CONTROL_MESH_GENERATE_TRUSSBEAM] = 3;
500   data_class[CONTROL_MESH_GENERATE_TRUSSBEAM] = CONTROL;
501 
502   strcpy(name[CONTROL_MESH_GENERATE_TRUSS_BEAM_LOOSE],"control_mesh_generate_truss_beam_loose");
503   type[CONTROL_MESH_GENERATE_TRUSS_BEAM_LOOSE] = INTEGER;
504   data_length[CONTROL_MESH_GENERATE_TRUSS_BEAM_LOOSE] = 1;
505   data_class[CONTROL_MESH_GENERATE_TRUSS_BEAM_LOOSE] = CONTROL;
506 
507   strcpy(name[CONTROL_MESH_GENERATE_TRUSS_BEAM_MACRO],"control_mesh_generate_truss_beam_macro");
508   type[CONTROL_MESH_GENERATE_TRUSS_BEAM_MACRO] = INTEGER;
509   data_length[CONTROL_MESH_GENERATE_TRUSS_BEAM_MACRO] = DATA_ITEM_SIZE;
510   fixed_length[CONTROL_MESH_GENERATE_TRUSS_BEAM_MACRO] = 0;
511   data_class[CONTROL_MESH_GENERATE_TRUSS_BEAM_MACRO] = CONTROL;
512 
513   strcpy(name[CONTROL_MESH_MACRO],"control_mesh_macro");
514   type[CONTROL_MESH_MACRO] = INTEGER;
515   data_length[CONTROL_MESH_MACRO] = DATA_ITEM_SIZE;
516   fixed_length[CONTROL_MESH_MACRO] = 0;
517   data_class[CONTROL_MESH_MACRO] = CONTROL;
518 
519   strcpy(name[CONTROL_MESH_MACRO_ELEMENT],"control_mesh_macro_element");
520   type[CONTROL_MESH_MACRO_ELEMENT] = INTEGER;
521   data_length[CONTROL_MESH_MACRO_ELEMENT] = 1;
522   data_class[CONTROL_MESH_MACRO_ELEMENT] = CONTROL;
523 
524   strcpy(name[CONTROL_MESH_MACRO_PARAMETERS],"control_mesh_macro_parameters");
525   type[CONTROL_MESH_MACRO_PARAMETERS] = DOUBLE_PRECISION;
526   data_length[CONTROL_MESH_MACRO_PARAMETERS] = DATA_ITEM_SIZE;
527   fixed_length[CONTROL_MESH_MACRO_PARAMETERS] = 0;
528   data_class[CONTROL_MESH_MACRO_PARAMETERS] = CONTROL;
529   data_required[CONTROL_MESH_MACRO_PARAMETERS] = CONTROL_MESH_MACRO;
530 
531   strcpy(name[CONTROL_MESH_MACRO_SET_NODE_BOUNDARY],"control_mesh_macro_set_node_boundary");
532   type[CONTROL_MESH_MACRO_SET_NODE_BOUNDARY] = INTEGER;
533   data_length[CONTROL_MESH_MACRO_SET_NODE_BOUNDARY] = 1;
534   data_class[CONTROL_MESH_MACRO_SET_NODE_BOUNDARY] = CONTROL;
535   data_required[CONTROL_MESH_MACRO_SET_NODE_BOUNDARY] = CONTROL_MESH_MACRO;
536 
537   strcpy(name[CONTROL_MESH_MERGE],"control_mesh_merge");
538   type[CONTROL_MESH_MERGE] = INTEGER;
539   data_length[CONTROL_MESH_MERGE] = 1;
540   data_class[CONTROL_MESH_MERGE] = CONTROL;
541 
542   strcpy(name[CONTROL_MESH_MERGE_EPSCOORD],"control_mesh_merge_epscoord");
543   type[CONTROL_MESH_MERGE_EPSCOORD] = DOUBLE_PRECISION;
544   data_length[CONTROL_MESH_MERGE_EPSCOORD] = 1;
545   data_class[CONTROL_MESH_MERGE_EPSCOORD] = CONTROL;
546 
547   strcpy(name[CONTROL_MESH_MERGE_MACRO_GENERATE],"control_mesh_merge_macro_generate");
548   type[CONTROL_MESH_MERGE_MACRO_GENERATE] = INTEGER;
549   data_length[CONTROL_MESH_MERGE_MACRO_GENERATE] = DATA_ITEM_SIZE;
550   fixed_length[CONTROL_MESH_MERGE_MACRO_GENERATE] = 0;
551   data_class[CONTROL_MESH_MERGE_MACRO_GENERATE] = CONTROL;
552 
553   strcpy(name[CONTROL_MESH_MERGE_NOT],"control_mesh_merge_not");
554   type[CONTROL_MESH_MERGE_NOT] = INTEGER;
555   data_length[CONTROL_MESH_MERGE_NOT] = 2;
556   data_class[CONTROL_MESH_MERGE_NOT] = CONTROL;
557 
558   strcpy(name[CONTROL_MESH_NEW_MESH],"control_mesh_new_mesh");
559   type[CONTROL_MESH_NEW_MESH] = DOUBLE_PRECISION;
560   data_length[CONTROL_MESH_NEW_MESH] = 1;
561   data_class[CONTROL_MESH_NEW_MESH] = CONTROL;
562 
563   strcpy(name[CONTROL_MESH_NEW_MESH_ELEMENT],"control_mesh_new_mesh_element");
564   type[CONTROL_MESH_NEW_MESH_ELEMENT] = INTEGER;
565   data_length[CONTROL_MESH_NEW_MESH_ELEMENT] = 1;
566   data_class[CONTROL_MESH_NEW_MESH_ELEMENT] = CONTROL;
567   data_required[CONTROL_MESH_NEW_MESH_ELEMENT] = CONTROL_MESH_NEW_MESH;
568 
569   strcpy(name[CONTROL_MESH_NEW_MESH_REGION],"control_mesh_new_mesh_region");
570   type[CONTROL_MESH_NEW_MESH_REGION] = INTEGER;
571   data_length[CONTROL_MESH_NEW_MESH_REGION] = 6+nuknwn;
572   fixed_length[CONTROL_MESH_NEW_MESH_REGION] = 0;
573   data_class[CONTROL_MESH_NEW_MESH_REGION] = CONTROL;
574   data_required[CONTROL_MESH_NEW_MESH_REGION] = CONTROL_MESH_NEW_MESH;
575 
576   strcpy(name[CONTROL_MESH_REFINE_GLOBALLY],"control_mesh_refine_globally");
577   type[CONTROL_MESH_REFINE_GLOBALLY] = INTEGER;
578   data_length[CONTROL_MESH_REFINE_GLOBALLY] = 4;
579   fixed_length[CONTROL_MESH_REFINE_GLOBALLY] = 0;
580   data_class[CONTROL_MESH_REFINE_GLOBALLY] = CONTROL;
581 
582   strcpy(name[CONTROL_MESH_REFINE_GLOBALLY_GEOMETRY],"control_mesh_refine_globally_geometry");
583   type[CONTROL_MESH_REFINE_GLOBALLY_GEOMETRY] = INTEGER;
584   data_length[CONTROL_MESH_REFINE_GLOBALLY_GEOMETRY] = 2;
585   data_class[CONTROL_MESH_REFINE_GLOBALLY_GEOMETRY] = CONTROL;
586   data_required[CONTROL_MESH_REFINE_GLOBALLY_GEOMETRY] = CONTROL_MESH_REFINE_GLOBALLY;
587 
588   strcpy(name[CONTROL_MESH_REFINE_LOCALLY],"control_mesh_refine_locally");
589   type[CONTROL_MESH_REFINE_LOCALLY] = DOUBLE_PRECISION;
590   data_length[CONTROL_MESH_REFINE_LOCALLY] = 1;
591   data_class[CONTROL_MESH_REFINE_LOCALLY] = CONTROL;
592 
593   strcpy(name[CONTROL_MESH_REFINE_LOCALLY_GEOMETRY],"control_mesh_refine_locally_geometry");
594   type[CONTROL_MESH_REFINE_LOCALLY_GEOMETRY] = INTEGER;
595   data_length[CONTROL_MESH_REFINE_LOCALLY_GEOMETRY] = 2;
596   data_class[CONTROL_MESH_REFINE_LOCALLY_GEOMETRY] = CONTROL;
597   data_required[CONTROL_MESH_REFINE_LOCALLY_GEOMETRY] = CONTROL_MESH_REFINE_LOCALLY;
598 
599   strcpy(name[CONTROL_MESH_REFINE_LOCALLY_NOT],"control_mesh_refine_locally_not");
600   type[CONTROL_MESH_REFINE_LOCALLY_NOT] = INTEGER;
601   data_length[CONTROL_MESH_REFINE_LOCALLY_NOT] = 2;
602   data_class[CONTROL_MESH_REFINE_LOCALLY_NOT] = CONTROL;
603   data_required[CONTROL_MESH_REFINE_LOCALLY_NOT] = CONTROL_MESH_REFINE_LOCALLY;
604 
605   strcpy(name[CONTROL_MESH_REFINE_LOCALLY_ONLY],"control_mesh_refine_locally_only");
606   type[CONTROL_MESH_REFINE_LOCALLY_ONLY] = INTEGER;
607   data_length[CONTROL_MESH_REFINE_LOCALLY_ONLY] = 2;
608   data_class[CONTROL_MESH_REFINE_LOCALLY_ONLY] = CONTROL;
609   data_required[CONTROL_MESH_REFINE_LOCALLY_ONLY] = CONTROL_MESH_REFINE_LOCALLY;
610 
611   strcpy(name[CONTROL_MESH_REFINE_LOCALLY_UNKNOWN],"control_mesh_refine_locally_unknown");
612   type[CONTROL_MESH_REFINE_LOCALLY_UNKNOWN] = INTEGER;
613   data_length[CONTROL_MESH_REFINE_LOCALLY_UNKNOWN] = 1;
614   data_class[CONTROL_MESH_REFINE_LOCALLY_UNKNOWN] = CONTROL;
615   data_required[CONTROL_MESH_REFINE_LOCALLY_UNKNOWN] = CONTROL_MESH_REFINE_LOCALLY;
616 
617   strcpy(name[CONTROL_MESH_REMESH],"control_mesh_remesh");
618   type[CONTROL_MESH_REMESH] = INTEGER;
619   data_length[CONTROL_MESH_REMESH] = 1;
620   data_class[CONTROL_MESH_REMESH] = CONTROL;
621 
622   strcpy(name[CONTROL_MESH_REMESH_FACTOR],"control_mesh_remesh_factor");
623   type[CONTROL_MESH_REMESH_FACTOR] = DOUBLE_PRECISION;
624   data_length[CONTROL_MESH_REMESH_FACTOR] = 2;
625   data_class[CONTROL_MESH_REMESH_FACTOR] = CONTROL;
626   data_required[CONTROL_MESH_REMESH_FACTOR] = CONTROL_MESH_REMESH;
627 
628   strcpy(name[CONTROL_MESH_RENUMBER],"control_mesh_renumber");
629   type[CONTROL_MESH_RENUMBER] = INTEGER;
630   data_length[CONTROL_MESH_RENUMBER] = 2;
631   data_class[CONTROL_MESH_RENUMBER] = CONTROL;
632 
633   strcpy(name[CONTROL_MESH_SPLIT],"control_mesh_split");
634   type[CONTROL_MESH_SPLIT] = INTEGER;
635   data_length[CONTROL_MESH_SPLIT] = 1;
636   data_class[CONTROL_MESH_SPLIT] = CONTROL;
637 
638   strcpy(name[CONTROL_MESH_SPLIT_ONLY],"control_mesh_split_only");
639   type[CONTROL_MESH_SPLIT_ONLY] = INTEGER;
640   data_length[CONTROL_MESH_SPLIT_ONLY] = 2;
641   data_class[CONTROL_MESH_SPLIT_ONLY] = CONTROL;
642 
643   strcpy(name[CONTROL_OPTIONS_CONVECTION],"control_options_convection");
644   type[CONTROL_OPTIONS_CONVECTION] = INTEGER;
645   data_length[CONTROL_OPTIONS_CONVECTION] = 1;
646   data_class[CONTROL_OPTIONS_CONVECTION] = CONTROL;
647 
648   strcpy(name[CONTROL_OPTIONS_INERTIA],"control_options_inertia");
649   type[CONTROL_OPTIONS_INERTIA] = INTEGER;
650   data_length[CONTROL_OPTIONS_INERTIA] = 1;
651   data_class[CONTROL_OPTIONS_INERTIA] = CONTROL;
652 
653   strcpy(name[CONTROL_OPTIONS_RELAXATION],"control_options_relaxation");
654   type[CONTROL_OPTIONS_RELAXATION] = DOUBLE_PRECISION;
655   data_length[CONTROL_OPTIONS_RELAXATION] = 1;
656   data_class[CONTROL_OPTIONS_RELAXATION] = CONTROL;
657 
658   strcpy(name[CONTROL_OPTIONS_SKIP_GRAVITY],"control_options_skip_gravity");
659   type[CONTROL_OPTIONS_SKIP_GRAVITY] = INTEGER;
660   data_length[CONTROL_OPTIONS_SKIP_GRAVITY] = 1;
661   data_class[CONTROL_OPTIONS_SKIP_GRAVITY] = CONTROL;
662 
663   strcpy(name[CONTROL_OPTIONS_SKIP_GROUNDFLOW_NONLINEAR],"control_options_skip_groundflow_nonlinear");
664   type[CONTROL_OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = INTEGER;
665   data_length[CONTROL_OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = 1;
666   data_class[CONTROL_OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = CONTROL;
667 
668   strcpy(name[CONTROL_OPTIONS_SKIP_PLASTICITY],"control_options_skip_plasticity");
669   type[CONTROL_OPTIONS_SKIP_PLASTICITY] = INTEGER;
670   data_length[CONTROL_OPTIONS_SKIP_PLASTICITY] = 1;
671   data_class[CONTROL_OPTIONS_SKIP_PLASTICITY] = CONTROL;
672 
673   strcpy(name[CONTROL_OPTIONS_SKIP_GROUNDFLOW_NONLINEAR],"control_options_skip_groundflow_nonlinear");
674   type[CONTROL_OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = INTEGER;
675   data_length[CONTROL_OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = 1;
676   data_class[CONTROL_OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = CONTROL;
677 
678   strcpy(name[CONTROL_OPTIONS_SOLVER],"control_options_solver");
679   type[CONTROL_OPTIONS_SOLVER] = INTEGER;
680   data_length[CONTROL_OPTIONS_SOLVER] = 1;
681   data_class[CONTROL_OPTIONS_SOLVER] = CONTROL;
682 
683   strcpy(name[CONTROL_OPTIONS_SOLVER_BICG_ERROR],"control_options_solver_bicg_error");
684   type[CONTROL_OPTIONS_SOLVER_BICG_ERROR] = DOUBLE_PRECISION;
685   data_length[CONTROL_OPTIONS_SOLVER_BICG_ERROR] = 1;
686   data_class[CONTROL_OPTIONS_SOLVER_BICG_ERROR] = CONTROL;
687 
688   strcpy(name[CONTROL_OPTIONS_SOLVER_BICG_ERROR_MINIMUM],"control_options_solver_bicg_error_minimum");
689   type[CONTROL_OPTIONS_SOLVER_BICG_ERROR_MINIMUM] = DOUBLE_PRECISION;
690   data_length[CONTROL_OPTIONS_SOLVER_BICG_ERROR_MINIMUM] = 1;
691   data_class[CONTROL_OPTIONS_SOLVER_BICG_ERROR_MINIMUM] = CONTROL;
692 
693   strcpy(name[CONTROL_OPTIONS_SOLVER_PETSC_KSPTYPE],"control_options_solver_petsc_ksptype");
694   type[CONTROL_OPTIONS_SOLVER_PETSC_KSPTYPE] = INTEGER;
695   data_length[CONTROL_OPTIONS_SOLVER_PETSC_KSPTYPE] = 1;
696   data_class[CONTROL_OPTIONS_SOLVER_PETSC_KSPTYPE] = CONTROL;
697   data_required[CONTROL_OPTIONS_SOLVER_PETSC_KSPTYPE] = CONTROL_OPTIONS_SOLVER;
698 
699   strcpy(name[CONTROL_OPTIONS_SOLVER_PETSC_MG],"control_options_solver_petsc_mg");
700   type[CONTROL_OPTIONS_SOLVER_PETSC_MG] = INTEGER;
701   data_length[CONTROL_OPTIONS_SOLVER_PETSC_MG] = 1;
702   data_class[CONTROL_OPTIONS_SOLVER_PETSC_MG] = CONTROL;
703   data_required[CONTROL_OPTIONS_SOLVER_PETSC_MG] = CONTROL_OPTIONS_SOLVER;
704 
705   strcpy(name[CONTROL_OPTIONS_SOLVER_PETSC_PCTYPE],"control_options_solver_petsc_pctype");
706   type[CONTROL_OPTIONS_SOLVER_PETSC_PCTYPE] = INTEGER;
707   data_length[CONTROL_OPTIONS_SOLVER_PETSC_PCTYPE] = 1;
708   data_class[CONTROL_OPTIONS_SOLVER_PETSC_PCTYPE] = CONTROL;
709   data_required[CONTROL_OPTIONS_SOLVER_PETSC_PCTYPE] = CONTROL_OPTIONS_SOLVER;
710 
711   strcpy(name[CONTROL_PRINT],"control_print");
712   type[CONTROL_PRINT] = INTEGER;
713   data_length[CONTROL_PRINT] = DATA_ITEM_SIZE;
714   fixed_length[CONTROL_PRINT] = 0;
715   data_class[CONTROL_PRINT] = CONTROL;
716 
717   strcpy(name[CONTROL_PRINT_DATABASE],"control_print_database");
718   type[CONTROL_PRINT_DATABASE] = INTEGER;
719   data_length[CONTROL_PRINT_DATABASE] = 1;
720   data_class[CONTROL_PRINT_DATABASE] = CONTROL;
721 
722   strcpy(name[CONTROL_PRINT_ELEMENT],"control_print_element");
723   type[CONTROL_PRINT_ELEMENT] = INTEGER;
724   data_length[CONTROL_PRINT_ELEMENT] = 1;
725   data_class[CONTROL_PRINT_ELEMENT] = CONTROL;
726 
727   strcpy(name[CONTROL_PRINT_DATA_VERSUS_DATA],"control_print_data_versus_data");
728   type[CONTROL_PRINT_DATA_VERSUS_DATA] = INTEGER;
729   data_length[CONTROL_PRINT_DATA_VERSUS_DATA] = DATA_ITEM_SIZE;
730   fixed_length[CONTROL_PRINT_DATA_VERSUS_DATA] = 0;
731   data_class[CONTROL_PRINT_DATA_VERSUS_DATA] = CONTROL;
732 
733   strcpy(name[CONTROL_PRINT_DX],"control_print_dx");
734   type[CONTROL_PRINT_DX] = INTEGER;
735   data_length[CONTROL_PRINT_DX] = 1;
736   data_class[CONTROL_PRINT_DX] = CONTROL;
737 
738   strcpy(name[CONTROL_PRINT_DX_TIME],"control_print_dx_time");
739   type[CONTROL_PRINT_DX_TIME] = DOUBLE_PRECISION;
740   data_length[CONTROL_PRINT_DX_TIME] = DATA_ITEM_SIZE;
741   fixed_length[CONTROL_PRINT_DX_TIME] = 0;
742   data_class[CONTROL_PRINT_DX_TIME] = CONTROL;
743   no_index[CONTROL_PRINT_DX_TIME] = 1;
744 
745   strcpy(name[CONTROL_PRINT_FILTER],"control_print_filter");
746   type[CONTROL_PRINT_FILTER] = INTEGER;
747   data_length[CONTROL_PRINT_FILTER] = DATA_ITEM_SIZE;
748   fixed_length[CONTROL_PRINT_FILTER] = 0;
749   data_class[CONTROL_PRINT_FILTER] = CONTROL;
750 
751   strcpy(name[CONTROL_PRINT_GID],"control_print_gid");
752   type[CONTROL_PRINT_GID] = INTEGER;
753   data_length[CONTROL_PRINT_GID] = 1;
754   data_class[CONTROL_PRINT_GID] = CONTROL;
755 
756   strcpy(name[CONTROL_PRINT_GID_EMPTY],"control_print_gid_empty");
757   type[CONTROL_PRINT_GID_EMPTY] = INTEGER;
758   data_length[CONTROL_PRINT_GID_EMPTY] = 1;
759   data_class[CONTROL_PRINT_GID_EMPTY] = CONTROL;
760 
761   strcpy(name[CONTROL_PRINT_GID_MESH],"control_print_gid_mesh");
762   type[CONTROL_PRINT_GID_MESH] = INTEGER;
763   data_length[CONTROL_PRINT_GID_MESH] = 1;
764   no_index[CONTROL_PRINT_GID_MESH] = 1;
765   external[CONTROL_PRINT_GID_MESH] = 0;
766   data_class[CONTROL_PRINT_GID_MESH] = CONTROL;
767 
768   strcpy(name[CONTROL_PRINT_GID_TIME],"control_print_gid_time");
769   type[CONTROL_PRINT_GID_TIME] = DOUBLE_PRECISION;
770   data_length[CONTROL_PRINT_GID_TIME] = 1;
771   no_index[CONTROL_PRINT_GID_TIME] = 1;
772   external[CONTROL_PRINT_GID_TIME] = 0;
773   data_class[CONTROL_PRINT_GID_TIME] = CONTROL;
774 
775   strcpy(name[CONTROL_PRINT_GMV],"control_print_gmv");
776   type[CONTROL_PRINT_GMV] = INTEGER;
777   data_length[CONTROL_PRINT_GMV] = 1;
778   data_class[CONTROL_PRINT_GMV] = CONTROL;
779 
780   strcpy(name[CONTROL_PRINT_GMV_MESH],"control_print_gmv_mesh");
781   type[CONTROL_PRINT_GMV_MESH] = INTEGER;
782   data_length[CONTROL_PRINT_GMV_MESH] = 1;
783   no_index[CONTROL_PRINT_GMV_MESH] = 1;
784   external[CONTROL_PRINT_GMV_MESH] = 0;
785   data_class[CONTROL_PRINT_GMV_MESH] = CONTROL;
786 
787   strcpy(name[CONTROL_PRINT_HISTORY],"control_print_history");
788   type[CONTROL_PRINT_HISTORY] = INTEGER;
789   data_length[CONTROL_PRINT_HISTORY] = DATA_ITEM_SIZE;
790   fixed_length[CONTROL_PRINT_HISTORY] = 0;
791   data_class[CONTROL_PRINT_HISTORY] = CONTROL;
792 
793   strcpy(name[CONTROL_PRINT_PLOTMTV],"control_print_plotmtv");
794   type[CONTROL_PRINT_PLOTMTV] = INTEGER;
795   data_length[CONTROL_PRINT_PLOTMTV] = 1;
796   data_class[CONTROL_PRINT_PLOTMTV] = CONTROL;
797 
798   strcpy(name[CONTROL_PRINT_PLOTMTV_MESH],"control_print_plotmtv_mesh");
799   type[CONTROL_PRINT_PLOTMTV_MESH] = INTEGER;
800   data_length[CONTROL_PRINT_PLOTMTV_MESH] = 1;
801   no_index[CONTROL_PRINT_PLOTMTV_MESH] = 1;
802   external[CONTROL_PRINT_PLOTMTV_MESH] = 0;
803   data_class[CONTROL_PRINT_PLOTMTV_MESH] = CONTROL;
804 
805   strcpy(name[CONTROL_PRINT_MATLAB],"control_print_matlab");
806   type[CONTROL_PRINT_MATLAB] = INTEGER;
807   data_length[CONTROL_PRINT_MATLAB] = 1;
808   data_class[CONTROL_PRINT_MATLAB] = CONTROL;
809 
810   strcpy(name[CONTROL_PRINT_TECPLOT],"control_print_tecplot");
811   type[CONTROL_PRINT_TECPLOT] = INTEGER;
812   data_length[CONTROL_PRINT_TECPLOT] = 1;
813   data_class[CONTROL_PRINT_TECPLOT] = CONTROL;
814 
815   strcpy(name[CONTROL_PRINT_TECPLOT_MESH],"control_print_tecplot_mesh");
816   type[CONTROL_PRINT_TECPLOT_MESH] = INTEGER;
817   data_length[CONTROL_PRINT_TECPLOT_MESH] = 1;
818   no_index[CONTROL_PRINT_TECPLOT_MESH] = 1;
819   external[CONTROL_PRINT_TECPLOT_MESH] = 0;
820   data_class[CONTROL_PRINT_TECPLOT_MESH] = CONTROL;
821 
822   strcpy(name[CONTROL_PRINT_UNKNOWNS],"control_print_unknowns");
823   type[CONTROL_PRINT_UNKNOWNS] = INTEGER;
824   data_length[CONTROL_PRINT_UNKNOWNS] = 1;
825   data_class[CONTROL_PRINT_UNKNOWNS] = CONTROL;
826 
827   strcpy(name[CONTROL_PRINT_UNKNOWNSRHSIDE],"control_print_unknownsrhside");
828   type[CONTROL_PRINT_UNKNOWNSRHSIDE] = INTEGER;
829   data_length[CONTROL_PRINT_UNKNOWNSRHSIDE] = 1;
830   data_class[CONTROL_PRINT_UNKNOWNSRHSIDE] = CONTROL;
831 
832   strcpy(name[CONTROL_PRINT_VTK],"control_print_vtk");
833   type[CONTROL_PRINT_VTK] = INTEGER;
834   data_length[CONTROL_PRINT_VTK] = 1;
835   data_class[CONTROL_PRINT_VTK] = CONTROL;
836 
837   strcpy(name[CONTROL_RELAXATION_CONDIF_TEMPERATURE],"control_relaxation_condif_temperature");
838   type[CONTROL_RELAXATION_CONDIF_TEMPERATURE] = DOUBLE_PRECISION;
839   data_length[CONTROL_RELAXATION_CONDIF_TEMPERATURE] = 1;
840   data_class[CONTROL_RELAXATION_CONDIF_TEMPERATURE] = CONTROL;
841 
842   strcpy(name[CONTROL_RELAXATION_GROUNDFLOW_PRESSURE],"control_relaxation_groundflow_pressure");
843   type[CONTROL_RELAXATION_GROUNDFLOW_PRESSURE] = DOUBLE_PRECISION;
844   data_length[CONTROL_RELAXATION_GROUNDFLOW_PRESSURE] = 1;
845   data_class[CONTROL_RELAXATION_GROUNDFLOW_PRESSURE] = CONTROL;
846 
847   strcpy(name[CONTROL_RELAXATION_MAXWELL_E],"control_relaxation_maxwell_e");
848   type[CONTROL_RELAXATION_MAXWELL_E] = DOUBLE_PRECISION;
849   data_length[CONTROL_RELAXATION_MAXWELL_E] = 1;
850   data_class[CONTROL_RELAXATION_MAXWELL_E] = CONTROL;
851 
852   strcpy(name[CONTROL_RELAXATION_MATERI_VELOCITY],"control_relaxation_materi_velocity");
853   type[CONTROL_RELAXATION_MATERI_VELOCITY] = DOUBLE_PRECISION;
854   data_length[CONTROL_RELAXATION_MATERI_VELOCITY] = 1;
855   data_class[CONTROL_RELAXATION_MATERI_VELOCITY] = CONTROL;
856 
857   strcpy(name[CONTROL_RELAXATION_WAVE_FSCALAR],"control_relaxation_wave_fscalar");
858   type[CONTROL_RELAXATION_WAVE_FSCALAR] = DOUBLE_PRECISION;
859   data_length[CONTROL_RELAXATION_WAVE_FSCALAR] = 1;
860   data_class[CONTROL_RELAXATION_WAVE_FSCALAR] = CONTROL;
861 
862   strcpy(name[CONTROL_REPEAT],"control_repeat");
863   type[CONTROL_REPEAT] = INTEGER;
864   data_length[CONTROL_REPEAT] = 2;
865   data_class[CONTROL_REPEAT] = CONTROL;
866 
867   strcpy(name[CONTROL_REPEAT_UNTIL_ITEM],"control_repeat_until_item");
868   type[CONTROL_REPEAT_UNTIL_ITEM] = INTEGER;
869   data_length[CONTROL_REPEAT_UNTIL_ITEM] = 5;
870   data_class[CONTROL_REPEAT_UNTIL_ITEM] = CONTROL;
871 
872   strcpy(name[CONTROL_REPEAT_UNTIL_TOLERANCE],"control_repeat_until_tolerance");
873   type[CONTROL_REPEAT_UNTIL_TOLERANCE] = DOUBLE_PRECISION;
874   data_length[CONTROL_REPEAT_UNTIL_TOLERANCE] = 1;
875   data_class[CONTROL_REPEAT_UNTIL_TOLERANCE] = CONTROL;
876 
877   strcpy(name[CONTROL_REPEAT_UNTIL_VALUE],"control_repeat_until_value");
878   type[CONTROL_REPEAT_UNTIL_VALUE] = DOUBLE_PRECISION;
879   data_length[CONTROL_REPEAT_UNTIL_VALUE] = 1;
880   external[CONTROL_REPEAT_UNTIL_VALUE] = 0;
881   data_class[CONTROL_REPEAT_UNTIL_VALUE] = CONTROL;
882 
883   strcpy(name[CONTROL_RESTART],"control_restart");
884   type[CONTROL_RESTART] = INTEGER;
885   data_length[CONTROL_RESTART] = 1;
886   data_class[CONTROL_RESTART] = CONTROL;
887 
888   strcpy(name[CONTROL_UNKNOWN_FREEZE],"control_unknown_freeze");
889   type[CONTROL_UNKNOWN_FREEZE] = INTEGER;
890   data_length[CONTROL_UNKNOWN_FREEZE] = nuknwn;
891   data_class[CONTROL_UNKNOWN_FREEZE] = CONTROL;
892   fixed_length[CONTROL_UNKNOWN_FREEZE] = 0;
893 
894   strcpy(name[CONTROL_UNKNOWN_RESET_GEOMETRY],"control_unknown_reset_geometry");
895   type[CONTROL_UNKNOWN_RESET_GEOMETRY] = INTEGER;
896   data_length[CONTROL_UNKNOWN_RESET_GEOMETRY] =2;
897   data_class[CONTROL_UNKNOWN_RESET_GEOMETRY] = CONTROL;
898 
899   strcpy(name[CONTROL_UNKNOWN_RESET_UNKNOWN],"control_unknown_reset_unknown");
900   type[CONTROL_UNKNOWN_RESET_UNKNOWN] = INTEGER;
901   data_length[CONTROL_UNKNOWN_RESET_UNKNOWN] = nuknwn;
902   data_class[CONTROL_UNKNOWN_RESET_UNKNOWN] = CONTROL;
903   fixed_length[CONTROL_UNKNOWN_RESET_UNKNOWN] = 0;
904 
905   strcpy(name[CONTROL_UNKNOWN_RESET_VALUE],"control_unknown_reset_value");
906   type[CONTROL_UNKNOWN_RESET_VALUE] = DOUBLE_PRECISION;
907   data_length[CONTROL_UNKNOWN_RESET_VALUE] = 1;
908   data_class[CONTROL_UNKNOWN_RESET_VALUE] = CONTROL;
909 
910   strcpy(name[CONTROL_TIMESTEP],"control_timestep");
911   type[CONTROL_TIMESTEP] = DOUBLE_PRECISION;
912   data_length[CONTROL_TIMESTEP] = DATA_ITEM_SIZE;
913   fixed_length[CONTROL_TIMESTEP] = 0;
914   data_class[CONTROL_TIMESTEP] = CONTROL;
915 
916   strcpy(name[CONTROL_TIMESTEP_ITERATIONS],"control_timestep_iterations");
917   type[CONTROL_TIMESTEP_ITERATIONS] = INTEGER;
918   data_length[CONTROL_TIMESTEP_ITERATIONS] = 1;
919   data_class[CONTROL_TIMESTEP_ITERATIONS] = CONTROL;
920   data_required[CONTROL_TIMESTEP_ITERATIONS] = CONTROL_TIMESTEP;
921 
922   strcpy(name[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC],"control_timestep_iterations_automatic");
923   type[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC] = DOUBLE_PRECISION;
924   data_length[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC] = 2;
925   data_class[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC] = CONTROL;
926   data_required[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC] = CONTROL_TIMESTEP;
927 
928   strcpy(name[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC_STOP],"control_timestep_iterations_automatic_stop");
929   type[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC_STOP] = INTEGER;
930   data_length[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC_STOP] = 1;
931   data_class[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC_STOP] = CONTROL;
932   data_required[CONTROL_TIMESTEP_ITERATIONS_AUTOMATIC_STOP] = CONTROL_TIMESTEP;
933 
934   strcpy(name[CONTROL_TIMESTEP_SIZE_AUTOMATIC_DECREASE],"control_timestep_size_automatic_decrease");
935   type[CONTROL_TIMESTEP_SIZE_AUTOMATIC_DECREASE] = DOUBLE_PRECISION;
936   data_length[CONTROL_TIMESTEP_SIZE_AUTOMATIC_DECREASE] = 3;
937   data_class[CONTROL_TIMESTEP_SIZE_AUTOMATIC_DECREASE] = CONTROL;
938   data_required[CONTROL_TIMESTEP_SIZE_AUTOMATIC_DECREASE] = CONTROL_TIMESTEP;
939 
940   strcpy(name[CONTROL_TIMESTEP_MULTIPLIER],"control_timestep_multiplier");
941   type[CONTROL_TIMESTEP_MULTIPLIER] = DOUBLE_PRECISION;
942   data_length[CONTROL_TIMESTEP_MULTIPLIER] = 1;
943   fixed_length[CONTROL_TIMESTEP_MULTIPLIER] = 0;
944   data_class[CONTROL_TIMESTEP_MULTIPLIER] = CONTROL;
945 
946   strcpy(name[CR],"cr");
947 
948   strcpy(name[CRACK_DIRECTION],"crack_direction");
949   type[CRACK_DIRECTION] = DOUBLE_PRECISION;
950   data_length[CRACK_DIRECTION] = ndim;
951   data_class[CRACK_DIRECTION] = CRACK;
952   no_index[CRACK_DIRECTION] = 1;
953 
954   strcpy(name[CRACK_NODES],"crack_nodes");
955   type[CRACK_NODES] = INTEGER;
956   data_length[CRACK_NODES] = 5;
957   data_class[CRACK_NODES] = CRACK;
958   no_index[CRACK_NODES] = 1;
959 
960   strcpy(name[CRACK_ELEMENTGROUP],"crack_elementgroup");
961   type[CRACK_ELEMENTGROUP] = INTEGER;
962   data_length[CRACK_ELEMENTGROUP] = 1;
963   data_class[CRACK_ELEMENTGROUP] = CRACK;
964   no_index[CRACK_ELEMENTGROUP] = 1;
965 
966   strcpy(name[CRACK_LENGTH],"crack_length");
967   type[CRACK_LENGTH] = DOUBLE_PRECISION;
968   data_length[CRACK_LENGTH] = ndim;
969   data_class[CRACK_LENGTH] = CRACK;
970   no_index[CRACK_LENGTH] = 1;
971 
972   strcpy(name[CRACK_STRESSINTENSITYFACTOR],"crack_stressintensityfactor");
973   type[CRACK_STRESSINTENSITYFACTOR] = DOUBLE_PRECISION;
974   data_length[CRACK_STRESSINTENSITYFACTOR] = 2;
975   data_class[CRACK_STRESSINTENSITYFACTOR] = CRACK;
976   no_index[CRACK_STRESSINTENSITYFACTOR] = 1;
977 
978   strcpy(name[CRACK_TIP],"crack_tip");
979   type[CRACK_TIP] = DOUBLE_PRECISION;
980   data_length[CRACK_TIP] = ndim;
981   data_class[CRACK_TIP] = CRACK;
982   no_index[CRACK_TIP] = 1;
983 
984   strcpy(name[CYLINDER_HOLLOW],"cylinder_hollow" );
985 
986   strcpy(name[DATABASE],"database");
987 
988   strcpy(name[DEPENDENCY],"dependency");
989 
990   strcpy(name[DEPENDENCY_DIAGRAM],"dependency_diagram");
991   type[DEPENDENCY_DIAGRAM] = DOUBLE_PRECISION;
992   data_length[DEPENDENCY_DIAGRAM] = DATA_ITEM_SIZE;
993   fixed_length[DEPENDENCY_DIAGRAM] = 0;
994   data_class[DEPENDENCY_DIAGRAM] = DEPENDENCY;
995   data_required[DEPENDENCY_DIAGRAM] = DEPENDENCY_ITEM;
996 
997   strcpy(name[DEPENDENCY_ITEM],"dependency_item");
998   type[DEPENDENCY_ITEM] = INTEGER;
999   data_length[DEPENDENCY_ITEM] = 4;
1000   data_class[DEPENDENCY_ITEM] = DEPENDENCY;
1001   data_required[DEPENDENCY_ITEM] = DEPENDENCY_DIAGRAM;
1002 
1003   strcpy(name[DIAGONAL],"diagonal");
1004 
1005   strcpy(name[EMPTY],"empty" );
1006 
1007   strcpy(name[MATERI_DISPLACEMENT],"materi_displacement");
1008 
1009   strcpy(name[DOF],"dof");
1010 
1011   strcpy(name[DOF_AMOUNT],"dof_amount");
1012   type[DOF_AMOUNT] = INTEGER;
1013   data_length[DOF_AMOUNT] = nuknwn;
1014   no_index[DOF_AMOUNT] = 1;
1015   external[DOF_AMOUNT] = 0;
1016   data_class[DOF_AMOUNT] = DOF;
1017 
1018   strcpy(name[DOF_LABEL],"dof_label");
1019   type[DOF_LABEL] = INTEGER;
1020   data_length[DOF_LABEL] = nuknwn;
1021   print_only[DOF_LABEL] = 1;
1022   no_index[DOF_LABEL] = 1;
1023   data_class[DOF_LABEL] = DOF;
1024 
1025   strcpy(name[DOF_PRINCIPAL],"dof_principal");
1026   type[DOF_PRINCIPAL] = INTEGER;
1027   data_length[DOF_PRINCIPAL] = nuknwn;
1028   no_index[DOF_PRINCIPAL] = 1;
1029   external[DOF_PRINCIPAL] = 0;
1030   data_class[DOF_PRINCIPAL] = DOF;
1031 
1032   strcpy(name[DOF_SCAL_VEC_MAT],"dof_scal_vec_mat");
1033   type[DOF_SCAL_VEC_MAT] = INTEGER;
1034   data_length[DOF_SCAL_VEC_MAT] = nuknwn;
1035   no_index[DOF_SCAL_VEC_MAT] = 1;
1036   external[DOF_SCAL_VEC_MAT] = 0;
1037   data_class[DOF_SCAL_VEC_MAT] = DOF;
1038 
1039   strcpy(name[DOF_TYPE],"dof_type");
1040   type[DOF_TYPE] = INTEGER;
1041   data_length[DOF_TYPE] = nuknwn;
1042   no_index[DOF_TYPE] = 1;
1043   external[DOF_TYPE] = 0;
1044   data_class[DOF_TYPE] = DOF;
1045 
1046   strcpy(name[DTIME],"dtime");
1047   type[DTIME] = DOUBLE_PRECISION;
1048   data_length[DTIME] = 1;
1049   no_index[DTIME] = 1;
1050   version_all[DTIME] = 1;
1051   external[DTIME] = 0;
1052 
1053   strcpy(name[DYNAMIC],"dynamic" );
1054 
1055   strcpy(name[ELEMENT],"element");
1056   type[ELEMENT] = INTEGER;
1057   if      ( ndim==1 ) data_length[ELEMENT] = 1+4;
1058   else if ( ndim==2 ) data_length[ELEMENT] = 1+16;
1059   else if ( ndim==3 ) data_length[ELEMENT] = 1+MNOL;
1060   fixed_length[ELEMENT] = 0;
1061   version_all[ELEMENT] = 1;
1062   data_class[ELEMENT] = ELEMENT;
1063 
1064   strcpy(name[ELEMENT_ADJUST],"element_adjust");
1065   type[ELEMENT_ADJUST] = INTEGER;
1066   data_length[ELEMENT_ADJUST] = 1;
1067   version_all[ELEMENT_ADJUST] = 1;
1068   data_class[ELEMENT_ADJUST] = ELEMENT;
1069   external[ELEMENT_ADJUST] = 0;
1070   data_required[ELEMENT_ADJUST] = ELEMENT;
1071 
1072   strcpy(name[ELEMENT_BEAM_DIRECTION],"element_beam_direction");
1073   type[ELEMENT_BEAM_DIRECTION] = DOUBLE_PRECISION;
1074   data_length[ELEMENT_BEAM_DIRECTION] = 2;
1075   version_all[ELEMENT_BEAM_DIRECTION] = 1;
1076   print_only[ELEMENT_BEAM_DIRECTION] = 1;
1077   data_class[ELEMENT_BEAM_DIRECTION] = ELEMENT;
1078   data_required[ELEMENT_BEAM_DIRECTION] = ELEMENT;
1079 
1080   strcpy(name[ELEMENT_BEAM_MOMENT],"element_beam_moment");
1081   type[ELEMENT_BEAM_MOMENT] = DOUBLE_PRECISION;
1082   data_length[ELEMENT_BEAM_MOMENT] = 6;
1083   version_all[ELEMENT_BEAM_MOMENT] = 1;
1084   data_class[ELEMENT_BEAM_MOMENT] = ELEMENT;
1085   data_required[ELEMENT_BEAM_MOMENT] = ELEMENT;
1086 
1087   strcpy(name[ELEMENT_CONTACTSPRING_DIRECTION],"element_contactspring_direction");
1088   type[ELEMENT_CONTACTSPRING_DIRECTION] = DOUBLE_PRECISION;
1089   data_length[ELEMENT_CONTACTSPRING_DIRECTION] = MDIM*MDIM;
1090   version_all[ELEMENT_CONTACTSPRING_DIRECTION] = 1;
1091   print_only[ELEMENT_CONTACTSPRING_DIRECTION] = 1;
1092   data_class[ELEMENT_CONTACTSPRING_DIRECTION] = ELEMENT;
1093   data_required[ELEMENT_CONTACTSPRING_DIRECTION] = ELEMENT;
1094 
1095   strcpy(name[ELEMENT_CONTACTSPRING_FORCE],"element_contactspring_force");
1096   type[ELEMENT_CONTACTSPRING_FORCE] = DOUBLE_PRECISION;
1097   data_length[ELEMENT_CONTACTSPRING_FORCE] = MDIM;
1098   version_all[ELEMENT_CONTACTSPRING_FORCE] = 1;
1099   print_only[ELEMENT_CONTACTSPRING_FORCE] = 1;
1100   data_class[ELEMENT_CONTACTSPRING_FORCE] = ELEMENT;
1101   data_required[ELEMENT_CONTACTSPRING_FORCE] = ELEMENT;
1102 
1103   strcpy(name[ELEMENT_DELETE_FACTOR],"element_delete_factor");
1104   type[ELEMENT_DELETE_FACTOR] = DOUBLE_PRECISION;
1105   data_length[ELEMENT_DELETE_FACTOR] = 1;
1106   external[ELEMENT_DELETE_FACTOR] = 0;
1107   version_all[ELEMENT_DELETE_FACTOR] = 1;
1108   data_class[ELEMENT_DELETE_FACTOR] = ELEMENT;
1109   data_required[ELEMENT_DELETE_FACTOR] = ELEMENT;
1110 
1111   strcpy(name[ELEMENT_DELETE_TIMES],"element_delete_times");
1112   type[ELEMENT_DELETE_TIMES] = DOUBLE_PRECISION;
1113   data_length[ELEMENT_DELETE_TIMES] = 2;
1114   external[ELEMENT_DELETE_TIMES] = 0;
1115   version_all[ELEMENT_DELETE_TIMES] = 1;
1116   data_class[ELEMENT_DELETE_TIMES] = ELEMENT;
1117   data_required[ELEMENT_DELETE_TIMES] = ELEMENT;
1118 
1119   strcpy(name[ELEMENT_DISTRIBUTE],"element_distribute");
1120   type[ELEMENT_DISTRIBUTE] = INTEGER;
1121   data_length[ELEMENT_DISTRIBUTE] = 2;
1122   external[ELEMENT_DISTRIBUTE] = 0;
1123   version_all[ELEMENT_DISTRIBUTE] = 1;
1124   data_class[ELEMENT_DISTRIBUTE] = ELEMENT;
1125   data_required[ELEMENT_DISTRIBUTE] = ELEMENT;
1126 
1127   strcpy(name[ELEMENT_DISTRIBUTE_VALUES],"element_distribute_values");
1128   type[ELEMENT_DISTRIBUTE_VALUES] = DOUBLE_PRECISION;
1129   data_length[ELEMENT_DISTRIBUTE_VALUES] = 1;
1130   external[ELEMENT_DISTRIBUTE_VALUES] = 0;
1131   version_all[ELEMENT_DISTRIBUTE_VALUES] = 1;
1132   data_class[ELEMENT_DISTRIBUTE_VALUES] = ELEMENT;
1133   data_required[ELEMENT_DISTRIBUTE_VALUES] = ELEMENT;
1134 
1135   strcpy(name[ELEMENT_DOF],"element_dof");
1136   type[ELEMENT_DOF] = DOUBLE_PRECISION;
1137   data_length[ELEMENT_DOF] = npointmax*nuknwn;
1138   version_all[ELEMENT_DOF] = 1;
1139   data_class[ELEMENT_DOF] = ELEMENT;
1140   data_required[ELEMENT_DOF] = ELEMENT;
1141 
1142   strcpy(name[ELEMENT_DOF_INITIALISED],"element_dof_initialised");
1143   type[ELEMENT_DOF_INITIALISED] = INTEGER;
1144   data_length[ELEMENT_DOF_INITIALISED] = 1;
1145   version_all[ELEMENT_DOF_INITIALISED] = 1;
1146   data_class[ELEMENT_DOF_INITIALISED] = ELEMENT;
1147   data_required[ELEMENT_DOF_INITIALISED] = ELEMENT;
1148 
1149   strcpy(name[ELEMENT_EMPTY],"element_empty");
1150   type[ELEMENT_EMPTY] = INTEGER;
1151   data_length[ELEMENT_EMPTY] = 1;
1152   version_all[ELEMENT_EMPTY] = 1;
1153   external[ELEMENT_EMPTY] = 0;
1154   data_class[ELEMENT_EMPTY] = ELEMENT;
1155   data_required[ELEMENT_EMPTY] = ELEMENT;
1156 
1157   strcpy(name[ELEMENT_GROUP],"element_group");
1158   type[ELEMENT_GROUP] = INTEGER;
1159   data_length[ELEMENT_GROUP] = 1;
1160   version_all[ELEMENT_GROUP] = 1;
1161   data_class[ELEMENT_GROUP] = ELEMENT;
1162   data_required[ELEMENT_GROUP] = ELEMENT;
1163 
1164   strcpy(name[ELEMENT_GROUP_AREA_ELEMENT_GROUP],
1165     "element_group_area_element_group");
1166   type[ELEMENT_GROUP_AREA_ELEMENT_GROUP] = INTEGER;
1167   data_length[ELEMENT_GROUP_AREA_ELEMENT_GROUP] = 1;
1168   version_all[ELEMENT_GROUP_AREA_ELEMENT_GROUP] = 1;
1169   data_class[ELEMENT_GROUP_AREA_ELEMENT_GROUP] = ELEMENT;
1170   data_required[ELEMENT_GROUP_AREA_ELEMENT_GROUP] = ELEMENT;
1171 
1172   strcpy(name[ELEMENT_GROUP_AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP],
1173     "element_group_area_element_group_sequence_elementgroup");
1174   type[ELEMENT_GROUP_AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = INTEGER;
1175   data_length[ELEMENT_GROUP_AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = 1;
1176   version_all[ELEMENT_GROUP_AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = 1;
1177   data_class[ELEMENT_GROUP_AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = ELEMENT;
1178   data_required[ELEMENT_GROUP_AREA_ELEMENT_GROUP_SEQUENCE_ELEMENTGROUP] = ELEMENT;
1179 
1180   strcpy(name[ELEMENT_MACRO_GENERATE],"element_macro_generate");
1181   type[ELEMENT_MACRO_GENERATE] = INTEGER;
1182   data_length[ELEMENT_MACRO_GENERATE] = 1;
1183   version_all[ELEMENT_MACRO_GENERATE] = 1;
1184   data_class[ELEMENT_MACRO_GENERATE] = ELEMENT;
1185   data_required[ELEMENT_MACRO_GENERATE] = ELEMENT;
1186   external[ELEMENT_MACRO_GENERATE] = 0;
1187 
1188   strcpy(name[ELEMENT_MASS],"element_mass");
1189   type[ELEMENT_MASS] = DOUBLE_PRECISION;
1190   data_length[ELEMENT_MASS] = 1;
1191   external[ELEMENT_MASS] = 0;
1192   data_class[ELEMENT_MASS] = ELEMENT;
1193   data_required[ELEMENT_MASS] = ELEMENT;
1194 
1195   strcpy(name[ELEMENT_MATRIX_DELETE],"element_matrix_delete");
1196   type[ELEMENT_MATRIX_DELETE] = DOUBLE_PRECISION;
1197   data_length[ELEMENT_MATRIX_DELETE] = MNOL*npuknwn;
1198   fixed_length[ELEMENT_MATRIX_DELETE] = 0;
1199   external[ELEMENT_MATRIX_DELETE] = 0;
1200   data_class[ELEMENT_MATRIX_DELETE] = ELEMENT;
1201   data_required[ELEMENT_MATRIX_DELETE] = ELEMENT;
1202 
1203   strcpy(name[ELEMENT_MATRIX_UNKNOWNS],"element_matrix_unknowns");
1204   type[ELEMENT_MATRIX_UNKNOWNS] = INTEGER;
1205   data_length[ELEMENT_MATRIX_UNKNOWNS] = 0; // set run-time
1206   fixed_length[ELEMENT_MATRIX_UNKNOWNS] = 0;
1207   external[ELEMENT_MATRIX_UNKNOWNS] = 0;
1208   data_class[ELEMENT_MATRIX_UNKNOWNS] = ELEMENT;
1209   data_required[ELEMENT_MATRIX_UNKNOWNS] = ELEMENT;
1210 
1211   strcpy(name[ELEMENT_MATRIX_VALUES],"element_matrix_values");
1212   type[ELEMENT_MATRIX_VALUES] = DOUBLE_PRECISION;
1213   data_length[ELEMENT_MATRIX_VALUES] = 0; // set run-time
1214   fixed_length[ELEMENT_MATRIX_VALUES] = 0;
1215   external[ELEMENT_MATRIX_VALUES] = 0;
1216   data_class[ELEMENT_MATRIX_VALUES] = ELEMENT;
1217   data_required[ELEMENT_MATRIX_VALUES] = ELEMENT;
1218 
1219   strcpy(name[ELEMENT_MATRIX_SECOND_VALUES],"element_matrix_second_values");
1220   type[ELEMENT_MATRIX_SECOND_VALUES] = DOUBLE_PRECISION;
1221   data_length[ELEMENT_MATRIX_SECOND_VALUES] = 0; // set run-time
1222   fixed_length[ELEMENT_MATRIX_SECOND_VALUES] = 0;
1223   external[ELEMENT_MATRIX_SECOND_VALUES] = 0;
1224   data_class[ELEMENT_MATRIX_SECOND_VALUES] = ELEMENT;
1225   data_required[ELEMENT_MATRIX_SECOND_VALUES] = ELEMENT;
1226 
1227   strcpy(name[ELEMENT_MIDDLE],"element_middle");
1228   type[ELEMENT_MIDDLE] = DOUBLE_PRECISION;
1229   data_length[ELEMENT_MIDDLE] = ndim;
1230   external[ELEMENT_MIDDLE] = 0;
1231   version_all[ELEMENT_MIDDLE] = 1;
1232   data_class[ELEMENT_MIDDLE] = ELEMENT;
1233   data_required[ELEMENT_MIDDLE] = ELEMENT;
1234 
1235   strcpy(name[ELEMENT_NONLOCAL],"element_nonlocal");
1236   type[ELEMENT_NONLOCAL] = INTEGER;
1237   data_length[ELEMENT_NONLOCAL] = NONLOCAL_ITEM_SIZE*npointmax;
1238   external[ELEMENT_NONLOCAL] = 0;
1239   version_all[ELEMENT_NONLOCAL] = 0;
1240   fixed_length[ELEMENT_NONLOCAL] = 0;
1241   data_class[ELEMENT_NONLOCAL] = ELEMENT;
1242   data_required[ELEMENT_NONLOCAL] = ELEMENT;
1243 
1244   strcpy(name[ELEMENT_NONLOCAL_IPOINT],"element_nonlocal_ipoint");
1245   type[ELEMENT_NONLOCAL_IPOINT] = INTEGER;
1246   data_length[ELEMENT_NONLOCAL_IPOINT] = NONLOCAL_ITEM_SIZE*npointmax;
1247   external[ELEMENT_NONLOCAL_IPOINT] = 0;
1248   version_all[ELEMENT_NONLOCAL_IPOINT] = 0;
1249   fixed_length[ELEMENT_NONLOCAL_IPOINT] = 0;
1250   data_class[ELEMENT_NONLOCAL_IPOINT] = ELEMENT;
1251   data_required[ELEMENT_NONLOCAL_IPOINT] = ELEMENT;
1252 
1253   strcpy(name[ELEMENT_NONLOCAL_WEIGHT],"element_nonlocal_weight");
1254   type[ELEMENT_NONLOCAL_WEIGHT] = DOUBLE_PRECISION;
1255   data_length[ELEMENT_NONLOCAL_WEIGHT] = NONLOCAL_ITEM_SIZE*npointmax;
1256   external[ELEMENT_NONLOCAL_WEIGHT] = 0;
1257   version_all[ELEMENT_NONLOCAL_WEIGHT] = 0;
1258   fixed_length[ELEMENT_NONLOCAL_WEIGHT] = 0;
1259   data_class[ELEMENT_NONLOCAL_WEIGHT] = ELEMENT;
1260   data_required[ELEMENT_NONLOCAL_WEIGHT] = ELEMENT;
1261 
1262   strcpy(name[ELEMENT_RADIUS],"element_radius");
1263   type[ELEMENT_RADIUS] = DOUBLE_PRECISION;
1264   data_length[ELEMENT_RADIUS] = 1;
1265   external[ELEMENT_RADIUS] = 0;
1266   version_all[ELEMENT_RADIUS] = 1;
1267   data_class[ELEMENT_RADIUS] = ELEMENT;
1268   data_required[ELEMENT_RADIUS] = ELEMENT;
1269 
1270   strcpy(name[ELEMENT_RHSIDE_DELETE],"element_rhside_delete");
1271   type[ELEMENT_RHSIDE_DELETE] = DOUBLE_PRECISION;
1272   data_length[ELEMENT_RHSIDE_DELETE] = MNOL*npuknwn;
1273   fixed_length[ELEMENT_RHSIDE_DELETE] = 0;
1274   external[ELEMENT_RHSIDE_DELETE] = 0;
1275   data_class[ELEMENT_RHSIDE_DELETE] = ELEMENT;
1276   data_required[ELEMENT_RHSIDE_DELETE] = ELEMENT;
1277 
1278   strcpy(name[ELEMENT_SPRING_DIRECTION],"element_spring_direction");
1279   type[ELEMENT_SPRING_DIRECTION] = DOUBLE_PRECISION;
1280   data_length[ELEMENT_SPRING_DIRECTION] = ndim;
1281   version_all[ELEMENT_SPRING_DIRECTION] = 1;
1282   print_only[ELEMENT_SPRING_DIRECTION] = 1;
1283   data_class[ELEMENT_SPRING_DIRECTION] = ELEMENT;
1284   data_required[ELEMENT_SPRING_DIRECTION] = ELEMENT;
1285 
1286   strcpy(name[ELEMENT_SPRING_FORCE],"element_spring_force");
1287   type[ELEMENT_SPRING_FORCE] = DOUBLE_PRECISION;
1288   data_length[ELEMENT_SPRING_FORCE] = 1;
1289   version_all[ELEMENT_SPRING_FORCE] = 1;
1290   print_only[ELEMENT_SPRING_FORCE] = 1;
1291   data_class[ELEMENT_SPRING_FORCE] = ELEMENT;
1292   data_required[ELEMENT_SPRING_FORCE] = ELEMENT;
1293 
1294   strcpy(name[ELEMENT_STRAINENERGY],"element_strainenergy");
1295   type[ELEMENT_STRAINENERGY] = DOUBLE_PRECISION;
1296   data_length[ELEMENT_STRAINENERGY] = 1;
1297   external[ELEMENT_STRAINENERGY] = 0;
1298   data_class[ELEMENT_STRAINENERGY] = ELEMENT;
1299   data_required[ELEMENT_STRAINENERGY] = ELEMENT;
1300 
1301   strcpy(name[ELEMENT_TENDON_DIRECTION],"element_tendon_direction");
1302   type[ELEMENT_TENDON_DIRECTION] = DOUBLE_PRECISION;
1303   data_length[ELEMENT_TENDON_DIRECTION] = MTENDON * MDIM;
1304   fixed_length[ELEMENT_TENDON_DIRECTION] = 0;
1305   version_all[ELEMENT_TENDON_DIRECTION] = 1;
1306   print_only[ELEMENT_TENDON_DIRECTION] = 1;
1307   data_class[ELEMENT_TENDON_DIRECTION] = ELEMENT;
1308   data_required[ELEMENT_TENDON_DIRECTION] = ELEMENT;
1309 
1310   strcpy(name[ELEMENT_TENDON_INTERSECTIONS],"element_tendon_intersections");
1311   type[ELEMENT_TENDON_INTERSECTIONS] = DOUBLE_PRECISION;
1312   data_length[ELEMENT_TENDON_INTERSECTIONS] = MTENDON * 2 * ndim;
1313   fixed_length[ELEMENT_TENDON_INTERSECTIONS] = 0;
1314   version_all[ELEMENT_TENDON_INTERSECTIONS] = 1;
1315   external[ELEMENT_TENDON_INTERSECTIONS] = 0;
1316   data_class[ELEMENT_TENDON_INTERSECTIONS] = ELEMENT;
1317   data_required[ELEMENT_TENDON_INTERSECTIONS] = ELEMENT;
1318 
1319   strcpy(name[ELEMENT_TENDON_NUMBER],"element_tendon_number");
1320   type[ELEMENT_TENDON_NUMBER] = INTEGER;
1321   data_length[ELEMENT_TENDON_NUMBER] = MTENDON;
1322   fixed_length[ELEMENT_TENDON_NUMBER] = 0;
1323   version_all[ELEMENT_TENDON_NUMBER] = 1;
1324   print_only[ELEMENT_TENDON_NUMBER] = 1;
1325   data_class[ELEMENT_TENDON_NUMBER] = ELEMENT;
1326   data_required[ELEMENT_TENDON_NUMBER] = ELEMENT;
1327 
1328   strcpy(name[ELEMENT_TENDON_STRAIN],"element_tendon_strain");
1329   type[ELEMENT_TENDON_STRAIN] = DOUBLE_PRECISION;
1330   data_length[ELEMENT_TENDON_STRAIN] = MTENDON;
1331   fixed_length[ELEMENT_TENDON_STRAIN] = 0;
1332   version_all[ELEMENT_TENDON_STRAIN] = 1;
1333   print_only[ELEMENT_TENDON_STRAIN] = 1;
1334   data_class[ELEMENT_TENDON_STRAIN] = ELEMENT;
1335   data_required[ELEMENT_TENDON_STRAIN] = ELEMENT;
1336 
1337   strcpy(name[ELEMENT_TENDON_STRESS],"element_tendon_stress");
1338   type[ELEMENT_TENDON_STRESS] = DOUBLE_PRECISION;
1339   data_length[ELEMENT_TENDON_STRESS] = MTENDON;
1340   fixed_length[ELEMENT_TENDON_STRESS] = 0;
1341   version_all[ELEMENT_TENDON_STRESS] = 1;
1342   print_only[ELEMENT_TENDON_STRESS] = 1;
1343   data_class[ELEMENT_TENDON_STRESS] = ELEMENT;
1344   data_required[ELEMENT_TENDON_STRESS] = ELEMENT;
1345 
1346   strcpy(name[ELEMENT_TENDON_VOLUME],"element_tendon_volume");
1347   type[ELEMENT_TENDON_VOLUME] = DOUBLE_PRECISION;
1348   data_length[ELEMENT_TENDON_VOLUME] = MTENDON;
1349   fixed_length[ELEMENT_TENDON_VOLUME] = 0;
1350   version_all[ELEMENT_TENDON_VOLUME] = 1;
1351   print_only[ELEMENT_TENDON_VOLUME] = 1;
1352   data_class[ELEMENT_TENDON_VOLUME] = ELEMENT;
1353   data_required[ELEMENT_TENDON_VOLUME] = ELEMENT;
1354 
1355   strcpy(name[ELEMENT_TRUSS_DIRECTION],"element_truss_direction");
1356   type[ELEMENT_TRUSS_DIRECTION] = DOUBLE_PRECISION;
1357   data_length[ELEMENT_TRUSS_DIRECTION] = ndim;
1358   version_all[ELEMENT_TRUSS_DIRECTION] = 1;
1359   print_only[ELEMENT_TRUSS_DIRECTION] = 1;
1360   data_class[ELEMENT_TRUSS_DIRECTION] = ELEMENT;
1361   data_required[ELEMENT_TRUSS_DIRECTION] = ELEMENT;
1362 
1363   strcpy(name[ELEMENT_TRUSS_FORCE],"element_truss_force");
1364   type[ELEMENT_TRUSS_FORCE] = DOUBLE_PRECISION;
1365   data_length[ELEMENT_TRUSS_FORCE] = 1;
1366   version_all[ELEMENT_TRUSS_FORCE] = 1;
1367   data_class[ELEMENT_TRUSS_FORCE] = ELEMENT;
1368   data_required[ELEMENT_TRUSS_FORCE] = ELEMENT;
1369 
1370   strcpy(name[ELEMENT_VOLUME],"element_volume");
1371   type[ELEMENT_VOLUME] = DOUBLE_PRECISION;
1372   data_length[ELEMENT_VOLUME] = 1;
1373   external[ELEMENT_VOLUME] = 0;
1374   data_class[ELEMENT_VOLUME] = ELEMENT;
1375   data_required[ELEMENT_VOLUME] = ELEMENT;
1376 
1377   strcpy(name[EISENSTAT],"eisenstat");
1378 
1379   strcpy(name[EVERYTHING],"everything" );
1380 
1381   strcpy(name[EXIT_TOCHNOG],"exit_tochnog");
1382   type[EXIT_TOCHNOG] = INTEGER;
1383   data_length[EXIT_TOCHNOG] = 1;
1384   data_class[EXIT_TOCHNOG] = EXIT_TOCHNOG;
1385   no_index[EXIT_TOCHNOG] = 1;
1386 
1387   strcpy(name[FIXED_IN_SPACE],"fixed_in_space");
1388 
1389   strcpy(name[FOLLOW_MATERIAL],"follow_material");
1390 
1391   strcpy(name[FORCE],"force");
1392 
1393   strcpy(name[FORCE_ELEMENT_EDGE],"force_element_edge");
1394   type[FORCE_ELEMENT_EDGE] = DOUBLE_PRECISION;
1395   data_length[FORCE_ELEMENT_EDGE] = nprinc;
1396   data_class[FORCE_ELEMENT_EDGE] = FORCE;
1397 
1398   strcpy(name[FORCE_ELEMENT_EDGE_FACTOR],"force_element_edge_factor");
1399   type[FORCE_ELEMENT_EDGE_FACTOR] = DOUBLE_PRECISION;
1400   data_length[FORCE_ELEMENT_EDGE_FACTOR] = DATA_ITEM_SIZE;
1401   fixed_length[FORCE_ELEMENT_EDGE_FACTOR] = 0;
1402   data_class[FORCE_ELEMENT_EDGE_FACTOR] = FORCE;
1403   data_required[FORCE_ELEMENT_EDGE_FACTOR] = FORCE_ELEMENT_EDGE;
1404 
1405   strcpy(name[FORCE_ELEMENT_EDGE_GEOMETRY],"force_element_edge_geometry");
1406   type[FORCE_ELEMENT_EDGE_GEOMETRY] = INTEGER;
1407   data_length[FORCE_ELEMENT_EDGE_GEOMETRY] = DATA_ITEM_SIZE;
1408   fixed_length[FORCE_ELEMENT_EDGE_GEOMETRY] = 0;
1409   data_class[FORCE_ELEMENT_EDGE_GEOMETRY] = FORCE;
1410   data_required[FORCE_ELEMENT_EDGE_GEOMETRY] = FORCE_ELEMENT_EDGE;
1411 
1412   strcpy(name[FORCE_ELEMENT_EDGE_SINE],"force_element_edge_sine");
1413   type[FORCE_ELEMENT_EDGE_SINE] = DOUBLE_PRECISION;
1414   data_length[FORCE_ELEMENT_EDGE_SINE] = DATA_ITEM_SIZE;
1415   fixed_length[FORCE_ELEMENT_EDGE_SINE] = 0;
1416   data_class[FORCE_ELEMENT_EDGE_SINE] = FORCE;
1417   data_required[FORCE_ELEMENT_EDGE_SINE] = FORCE_ELEMENT_EDGE;
1418 
1419   strcpy(name[FORCE_ELEMENT_EDGE_TIME],"force_element_edge_time");
1420   type[FORCE_ELEMENT_EDGE_TIME] = DOUBLE_PRECISION;
1421   data_length[FORCE_ELEMENT_EDGE_TIME] = DATA_ITEM_SIZE;
1422   fixed_length[FORCE_ELEMENT_EDGE_TIME] = 0;
1423   data_class[FORCE_ELEMENT_EDGE_TIME] = FORCE;
1424   data_required[FORCE_ELEMENT_EDGE_TIME] = FORCE_ELEMENT_EDGE;
1425 
1426   strcpy(name[FORCE_ELEMENT_EDGE_TIME_FILE],"force_element_edge_time_file");
1427   type[FORCE_ELEMENT_EDGE_TIME_FILE] = INTEGER;
1428   data_length[FORCE_ELEMENT_EDGE_TIME_FILE] = 1;
1429   data_class[FORCE_ELEMENT_EDGE_TIME_FILE] = FORCE_ELEMENT_EDGE;
1430 
1431   strcpy(name[FORCE_ELEMENT_EDGE_NORMAL],"force_element_edge_normal");
1432   type[FORCE_ELEMENT_EDGE_NORMAL] = DOUBLE_PRECISION;
1433   data_length[FORCE_ELEMENT_EDGE_NORMAL] = 1;
1434   data_class[FORCE_ELEMENT_EDGE_NORMAL] = FORCE;
1435 
1436   strcpy(name[FORCE_ELEMENT_EDGE_NORMAL_FACTOR],"force_element_edge_normal_factor");
1437   type[FORCE_ELEMENT_EDGE_NORMAL_FACTOR] = DOUBLE_PRECISION;
1438   data_length[FORCE_ELEMENT_EDGE_NORMAL_FACTOR] = DATA_ITEM_SIZE;
1439   fixed_length[FORCE_ELEMENT_EDGE_NORMAL_FACTOR] = 0;
1440   data_class[FORCE_ELEMENT_EDGE_NORMAL_FACTOR] = FORCE;
1441   data_required[FORCE_ELEMENT_EDGE_NORMAL_FACTOR] = FORCE_ELEMENT_EDGE_NORMAL;
1442 
1443   strcpy(name[FORCE_ELEMENT_EDGE_NORMAL_GEOMETRY],"force_element_edge_normal_geometry");
1444   type[FORCE_ELEMENT_EDGE_NORMAL_GEOMETRY] = INTEGER;
1445   data_length[FORCE_ELEMENT_EDGE_NORMAL_GEOMETRY] = 2;
1446   fixed_length[FORCE_ELEMENT_EDGE_NORMAL_GEOMETRY] = 0;
1447   data_class[FORCE_ELEMENT_EDGE_NORMAL_GEOMETRY] = FORCE;
1448   data_required[FORCE_ELEMENT_EDGE_NORMAL_GEOMETRY] = FORCE_ELEMENT_EDGE_NORMAL;
1449 
1450   strcpy(name[FORCE_ELEMENT_EDGE_NORMAL_SINE],"force_element_edge_normal_sine");
1451   type[FORCE_ELEMENT_EDGE_NORMAL_SINE] = DOUBLE_PRECISION;
1452   data_length[FORCE_ELEMENT_EDGE_NORMAL_SINE] = DATA_ITEM_SIZE;
1453   fixed_length[FORCE_ELEMENT_EDGE_NORMAL_SINE] = 0;
1454   data_class[FORCE_ELEMENT_EDGE_NORMAL_SINE] = FORCE;
1455   data_required[FORCE_ELEMENT_EDGE_NORMAL_SINE] = FORCE_ELEMENT_EDGE_NORMAL;
1456 
1457   strcpy(name[FORCE_ELEMENT_EDGE_NORMAL_TIME],"force_element_edge_normal_time");
1458   type[FORCE_ELEMENT_EDGE_NORMAL_TIME] = DOUBLE_PRECISION;
1459   data_length[FORCE_ELEMENT_EDGE_NORMAL_TIME] = DATA_ITEM_SIZE;
1460   fixed_length[FORCE_ELEMENT_EDGE_NORMAL_TIME] = 0;
1461   data_class[FORCE_ELEMENT_EDGE_NORMAL_TIME] = FORCE;
1462   data_required[FORCE_ELEMENT_EDGE_NORMAL_TIME] = FORCE_ELEMENT_EDGE_NORMAL;
1463 
1464   strcpy(name[FORCE_ELEMENT_EDGE_WATER],"force_element_edge_water");
1465   type[FORCE_ELEMENT_EDGE_WATER] = DOUBLE_PRECISION;
1466   if      ( ndim==2 )
1467     data_length[FORCE_ELEMENT_EDGE_WATER] = 4;
1468   else if ( ndim==3 )
1469     data_length[FORCE_ELEMENT_EDGE_WATER] = 5;
1470   data_class[FORCE_ELEMENT_EDGE_WATER] = FORCE;
1471 
1472   strcpy(name[FORCE_ELEMENT_EDGE_WATER_GEOMETRY],"force_element_edge_water_geometry");
1473   type[FORCE_ELEMENT_EDGE_WATER_GEOMETRY] = INTEGER;
1474   data_length[FORCE_ELEMENT_EDGE_WATER_GEOMETRY] = 2;
1475   fixed_length[FORCE_ELEMENT_EDGE_WATER_GEOMETRY] = 0;
1476   data_class[FORCE_ELEMENT_EDGE_WATER_GEOMETRY] = FORCE;
1477   data_required[FORCE_ELEMENT_EDGE_WATER_GEOMETRY] = FORCE_ELEMENT_EDGE_WATER;
1478 
1479   strcpy(name[FORCE_ELEMENT_EDGE_WATER_TIME],"force_element_edge_water_time");
1480   type[FORCE_ELEMENT_EDGE_WATER_TIME] = DOUBLE_PRECISION;
1481   data_length[FORCE_ELEMENT_EDGE_WATER_TIME] = DATA_ITEM_SIZE;
1482   fixed_length[FORCE_ELEMENT_EDGE_WATER_TIME] = 0;
1483   data_class[FORCE_ELEMENT_EDGE_WATER_TIME] = FORCE;
1484   data_required[FORCE_ELEMENT_EDGE_WATER_TIME] = FORCE_ELEMENT_EDGE_WATER;
1485 
1486   strcpy(name[FORCE_ELEMENT_VOLUME],"force_element_volume");
1487   type[FORCE_ELEMENT_VOLUME] = DOUBLE_PRECISION;
1488   data_length[FORCE_ELEMENT_VOLUME] = nprinc;
1489   version_all[FORCE_ELEMENT_VOLUME] = 1;
1490   data_class[FORCE_ELEMENT_VOLUME] = FORCE;
1491 
1492   strcpy(name[FORCE_ELEMENT_VOLUME_FACTOR],"force_element_volume_factor");
1493   type[FORCE_ELEMENT_VOLUME_FACTOR] = DOUBLE_PRECISION;
1494   data_length[FORCE_ELEMENT_VOLUME_FACTOR] = DATA_ITEM_SIZE;
1495   fixed_length[FORCE_ELEMENT_VOLUME_FACTOR] = 0;
1496   data_class[FORCE_ELEMENT_VOLUME_FACTOR] = FORCE;
1497   data_required[FORCE_ELEMENT_VOLUME_FACTOR] = FORCE_ELEMENT_VOLUME;
1498 
1499   strcpy(name[FORCE_ELEMENT_VOLUME_GEOMETRY],"force_element_volume_geometry");
1500   type[FORCE_ELEMENT_VOLUME_GEOMETRY] = INTEGER;
1501   data_length[FORCE_ELEMENT_VOLUME_GEOMETRY] = DATA_ITEM_SIZE;
1502   fixed_length[FORCE_ELEMENT_VOLUME_GEOMETRY] = 0;
1503   data_class[FORCE_ELEMENT_VOLUME_GEOMETRY] = FORCE;
1504   data_required[FORCE_ELEMENT_VOLUME_GEOMETRY] = FORCE_ELEMENT_VOLUME;
1505 
1506   strcpy(name[FORCE_ELEMENT_VOLUME_SINE],"force_element_volume_sine");
1507   type[FORCE_ELEMENT_VOLUME_SINE] = DOUBLE_PRECISION;
1508   data_length[FORCE_ELEMENT_VOLUME_SINE] = DATA_ITEM_SIZE;
1509   fixed_length[FORCE_ELEMENT_VOLUME_SINE] = 0;
1510   data_class[FORCE_ELEMENT_VOLUME_SINE] = FORCE;
1511   data_required[FORCE_ELEMENT_VOLUME_SINE] = FORCE_ELEMENT_VOLUME;
1512 
1513   strcpy(name[FORCE_ELEMENT_VOLUME_TIME],"force_element_volume_time");
1514   type[FORCE_ELEMENT_VOLUME_TIME] = DOUBLE_PRECISION;
1515   data_length[FORCE_ELEMENT_VOLUME_TIME] = DATA_ITEM_SIZE;
1516   fixed_length[FORCE_ELEMENT_VOLUME_TIME] = 0;
1517   data_class[FORCE_ELEMENT_VOLUME_TIME] = FORCE;
1518   data_required[FORCE_ELEMENT_VOLUME_TIME] = FORCE_ELEMENT_VOLUME;
1519 
1520   strcpy(name[FORCE_GRAVITY],"force_gravity");
1521   type[FORCE_GRAVITY] = DOUBLE_PRECISION;
1522   data_length[FORCE_GRAVITY] = ndim;
1523   no_index[FORCE_GRAVITY] = 1;
1524   data_class[FORCE_GRAVITY] = FORCE_GRAVITY;
1525 
1526   strcpy(name[FORCE_GRAVITY_TIME],"force_gravity_time");
1527   type[FORCE_GRAVITY_TIME] = DOUBLE_PRECISION;
1528   no_index[FORCE_GRAVITY_TIME] = 1;
1529   data_length[FORCE_GRAVITY_TIME] = DATA_ITEM_SIZE;
1530   fixed_length[FORCE_GRAVITY_TIME] = 0;
1531   data_class[FORCE_GRAVITY_TIME] = FORCE_GRAVITY;
1532   data_required[FORCE_GRAVITY_TIME] = FORCE_GRAVITY;
1533 
1534   strcpy(name[FROM],"from");
1535 
1536   strcpy(name[FRONT],"front");
1537 
1538   strcpy(name[GAUSS],"gauss");
1539 
1540   strcpy(name[GEOMETRY],"geometry");
1541 
1542   strcpy(name[GEOMETRY_BOUNDA_FACTOR],"geometry_bounda_factor");
1543   type[GEOMETRY_BOUNDA_FACTOR] = DOUBLE_PRECISION;
1544   data_length[GEOMETRY_BOUNDA_FACTOR] = 3;
1545   fixed_length[GEOMETRY_BOUNDA_FACTOR] = 0;
1546   data_class[GEOMETRY_BOUNDA_FACTOR] = GEOMETRY;
1547 
1548   strcpy(name[GEOMETRY_BOUNDA_SINE_X],"geometry_bounda_sine_x");
1549   type[GEOMETRY_BOUNDA_SINE_X] = DOUBLE_PRECISION;
1550   data_length[GEOMETRY_BOUNDA_SINE_X] = 2;
1551   data_class[GEOMETRY_BOUNDA_SINE_X] = GEOMETRY;
1552 
1553   strcpy(name[GEOMETRY_BOUNDA_SINE_Y],"geometry_bounda_sine_y");
1554   type[GEOMETRY_BOUNDA_SINE_Y] = DOUBLE_PRECISION;
1555   data_length[GEOMETRY_BOUNDA_SINE_Y] = 2;
1556   data_class[GEOMETRY_BOUNDA_SINE_Y] = GEOMETRY;
1557 
1558   strcpy(name[GEOMETRY_BOUNDA_SINE_Z],"geometry_bounda_sine_z");
1559   type[GEOMETRY_BOUNDA_SINE_Z] = DOUBLE_PRECISION;
1560   data_length[GEOMETRY_BOUNDA_SINE_Z] = 2;
1561   data_class[GEOMETRY_BOUNDA_SINE_Z] = GEOMETRY;
1562 
1563   strcpy(name[GEOMETRY_BRICK],"geometry_brick");
1564   type[GEOMETRY_BRICK] = DOUBLE_PRECISION;
1565   data_length[GEOMETRY_BRICK] = 2*MDIM+1;
1566   data_class[GEOMETRY_BRICK] = GEOMETRY;
1567 
1568   strcpy(name[GEOMETRY_CIRCLE],"geometry_circle");
1569   type[GEOMETRY_CIRCLE] = DOUBLE_PRECISION;
1570   data_length[GEOMETRY_CIRCLE] = ndim+2;
1571   data_class[GEOMETRY_CIRCLE] = GEOMETRY;
1572 
1573   strcpy(name[GEOMETRY_CIRCLE_SEGMENT],"geometry_circle_segment");
1574   type[GEOMETRY_CIRCLE_SEGMENT] = DOUBLE_PRECISION;
1575   data_length[GEOMETRY_CIRCLE_SEGMENT] = ndim+1+ndim+1;
1576   data_class[GEOMETRY_CIRCLE_SEGMENT] = GEOMETRY;
1577 
1578   strcpy(name[GEOMETRY_CIRCLE_SMALLSEGMENT],"geometry_circle_smallsegment");
1579   type[GEOMETRY_CIRCLE_SMALLSEGMENT] = DOUBLE_PRECISION;
1580   data_length[GEOMETRY_CIRCLE_SMALLSEGMENT] = ndim+1+2*ndim+1;
1581   data_class[GEOMETRY_CIRCLE_SMALLSEGMENT] = GEOMETRY;
1582 
1583   strcpy(name[GEOMETRY_ELLIPSE],"geometry_ellipse");
1584   type[GEOMETRY_ELLIPSE] = DOUBLE_PRECISION;
1585   data_length[GEOMETRY_ELLIPSE] = ndim+3;
1586   data_class[GEOMETRY_ELLIPSE] = GEOMETRY;
1587 
1588   strcpy(name[GEOMETRY_CYLINDER],"geometry_cylinder");
1589   type[GEOMETRY_CYLINDER] = DOUBLE_PRECISION;
1590   data_length[GEOMETRY_CYLINDER] = 8;
1591   data_class[GEOMETRY_CYLINDER] = GEOMETRY;
1592 
1593   strcpy(name[GEOMETRY_CYLINDER_SEGMENT],"geometry_cylinder_segment");
1594   type[GEOMETRY_CYLINDER_SEGMENT] = DOUBLE_PRECISION;
1595   data_length[GEOMETRY_CYLINDER_SEGMENT] = ndim+ndim+1+ndim+1;
1596   data_class[GEOMETRY_CYLINDER_SEGMENT] = GEOMETRY;
1597 
1598   strcpy(name[GEOMETRY_LINE],"geometry_line");
1599   type[GEOMETRY_LINE] = DOUBLE_PRECISION;
1600   data_length[GEOMETRY_LINE] = 2*ndim+1;
1601   data_class[GEOMETRY_LINE] = GEOMETRY;
1602 
1603   strcpy(name[GEOMETRY_NUMBER],"geometry_number");
1604   type[GEOMETRY_NUMBER] = INTEGER;
1605   data_length[GEOMETRY_NUMBER] = 1;
1606   data_class[GEOMETRY_NUMBER] = GEOMETRY;
1607 
1608   strcpy(name[GEOMETRY_POINT],"geometry_point");
1609   type[GEOMETRY_POINT] = DOUBLE_PRECISION;
1610   data_length[GEOMETRY_POINT] = ndim+1;
1611   data_class[GEOMETRY_POINT] = GEOMETRY;
1612 
1613   strcpy(name[GEOMETRY_POLYNOMIAL],"geometry_polynomial");
1614   type[GEOMETRY_POLYNOMIAL] = DOUBLE_PRECISION;
1615   data_length[GEOMETRY_POLYNOMIAL] = DATA_ITEM_SIZE;
1616   fixed_length[GEOMETRY_POLYNOMIAL] = 0;
1617   data_class[GEOMETRY_POLYNOMIAL] = GEOMETRY;
1618 
1619   strcpy(name[GEOMETRY_QUADRILATERAL],"geometry_quadrilateral");
1620   type[GEOMETRY_QUADRILATERAL] = DOUBLE_PRECISION;
1621   data_length[GEOMETRY_QUADRILATERAL] = 4*ndim+1;
1622   data_class[GEOMETRY_QUADRILATERAL] = GEOMETRY;
1623 
1624   strcpy(name[GEOMETRY_SET],"geometry_set");
1625   type[GEOMETRY_SET] = INTEGER;
1626   data_length[GEOMETRY_SET] = DATA_ITEM_SIZE;
1627   fixed_length[GEOMETRY_SET] = 0;
1628   data_class[GEOMETRY_SET] = GEOMETRY;
1629 
1630   strcpy(name[GEOMETRY_SPHERE],"geometry_sphere");
1631   type[GEOMETRY_SPHERE] = DOUBLE_PRECISION;
1632   data_length[GEOMETRY_SPHERE] = ndim+2;
1633   data_class[GEOMETRY_SPHERE] = GEOMETRY;
1634 
1635   strcpy(name[GEOMETRY_SPHERE_SEGMENT],"geometry_sphere_segment");
1636   type[GEOMETRY_SPHERE_SEGMENT] = DOUBLE_PRECISION;
1637   data_length[GEOMETRY_SPHERE_SEGMENT] = ndim+1+ndim+1;
1638   data_class[GEOMETRY_SPHERE_SEGMENT] = GEOMETRY;
1639 
1640   strcpy(name[GEOMETRY_TRIANGLE],"geometry_triangle");
1641   type[GEOMETRY_TRIANGLE] = DOUBLE_PRECISION;
1642   data_length[GEOMETRY_TRIANGLE] = 3*ndim+1;
1643   data_class[GEOMETRY_TRIANGLE] = GEOMETRY;
1644 
1645   strcpy(name[GEOMETRY_TRIANGLE_EPSISO],"geometry_triangle_epsiso");
1646   type[GEOMETRY_TRIANGLE_EPSISO] = DOUBLE_PRECISION;
1647   data_length[GEOMETRY_TRIANGLE_EPSISO] = 1;
1648   data_class[GEOMETRY_TRIANGLE_EPSISO] = GEOMETRY;
1649 
1650   strcpy(name[GENERALIZED],"generalized");
1651 
1652   strcpy(name[GET],"get");
1653 
1654   strcpy(name[GLOBAL_ELEMENTS],"global_elements");
1655   type[GLOBAL_ELEMENTS] = INTEGER;
1656   data_length[GLOBAL_ELEMENTS] = 1;
1657   data_class[GLOBAL_ELEMENTS] = GLOBAL_ELEMENTS;
1658   no_index[GLOBAL_ELEMENTS] = 1;
1659   print_only[GLOBAL_ELEMENTS] = 1;
1660 
1661   strcpy(name[GLOBAL_MASS],"global_mass");
1662   type[GLOBAL_MASS] = DOUBLE_PRECISION;
1663   data_length[GLOBAL_MASS] = 1;
1664   data_class[GLOBAL_MASS] = GLOBAL_MASS;
1665   no_index[GLOBAL_MASS] = 1;
1666   print_only[GLOBAL_MASS] = 1;
1667 
1668   strcpy(name[GLOBAL_NODES],"global_nodes");
1669   type[GLOBAL_NODES] = INTEGER;
1670   data_length[GLOBAL_NODES] = 1;
1671   data_class[GLOBAL_NODES] = GLOBAL_NODES;
1672   no_index[GLOBAL_NODES] = 1;
1673   print_only[GLOBAL_NODES] = 1;
1674 
1675   strcpy(name[GLOBAL_POINT_MATERI_DIFFUSION_LOST],"global_point_materi_diffusion_lost");
1676   type[GLOBAL_POINT_MATERI_DIFFUSION_LOST] = INTEGER;
1677   data_length[GLOBAL_POINT_MATERI_DIFFUSION_LOST] = 1;
1678   no_index[GLOBAL_POINT_MATERI_DIFFUSION_LOST] = 1;
1679 
1680   strcpy(name[GLOBAL_POINT_MATERI_DIFFUSION_TOTAL],"global_point_materi_diffusion_total");
1681   type[GLOBAL_POINT_MATERI_DIFFUSION_TOTAL] = INTEGER;
1682   data_length[GLOBAL_POINT_MATERI_DIFFUSION_TOTAL] = 1;
1683   no_index[GLOBAL_POINT_MATERI_DIFFUSION_TOTAL] = 1;
1684 
1685   strcpy(name[GLOBAL_SOLVER_ITERATIONS],"global_solver_iterations");
1686   type[GLOBAL_SOLVER_ITERATIONS] = INTEGER;
1687   data_length[GLOBAL_SOLVER_ITERATIONS] = 1;
1688   data_class[GLOBAL_SOLVER_ITERATIONS] = GLOBAL_SOLVER_ITERATIONS;
1689   no_index[GLOBAL_SOLVER_ITERATIONS] = 1;
1690   print_only[GLOBAL_SOLVER_ITERATIONS] = 1;
1691 
1692   strcpy(name[GLOBAL_SOLVER_ERROR],"global_solver_error");
1693   type[GLOBAL_SOLVER_ERROR] = DOUBLE_PRECISION;
1694   data_length[GLOBAL_SOLVER_ERROR] = 1;
1695   data_class[GLOBAL_SOLVER_ERROR] = GLOBAL_SOLVER_ERROR;
1696   no_index[GLOBAL_SOLVER_ERROR] = 1;
1697   print_only[GLOBAL_SOLVER_ERROR] = 1;
1698 
1699   strcpy(name[GLOBAL_STRAINENERGY],"global_strainenergy");
1700   type[GLOBAL_STRAINENERGY] = DOUBLE_PRECISION;
1701   data_length[GLOBAL_STRAINENERGY] = 1;
1702   data_class[GLOBAL_STRAINENERGY] = GLOBAL_STRAINENERGY;
1703   no_index[GLOBAL_STRAINENERGY] = 1;
1704   print_only[GLOBAL_STRAINENERGY] = 1;
1705 
1706   strcpy(name[GLOBAL_UNKNOWN_AVERAGE],"global_unknown_average");
1707   type[GLOBAL_UNKNOWN_AVERAGE] = DOUBLE_PRECISION;
1708   data_length[GLOBAL_UNKNOWN_AVERAGE] = nuknwn;
1709   data_class[GLOBAL_UNKNOWN_AVERAGE] = GLOBAL_UNKNOWN_AVERAGE;
1710   no_index[GLOBAL_UNKNOWN_AVERAGE] = 1;
1711   print_only[GLOBAL_UNKNOWN_AVERAGE] = 1;
1712 
1713   strcpy(name[GLOBAL_UNKNOWN_MIN],"global_unknown_min");
1714   type[GLOBAL_UNKNOWN_MIN] = DOUBLE_PRECISION;
1715   data_length[GLOBAL_UNKNOWN_MIN] = nuknwn;
1716   data_class[GLOBAL_UNKNOWN_MIN] = GLOBAL_UNKNOWN_MIN;
1717   no_index[GLOBAL_UNKNOWN_MIN] = 1;
1718   print_only[GLOBAL_UNKNOWN_MIN] = 1;
1719 
1720   strcpy(name[GLOBAL_UNKNOWN_MAX],"global_unknown_max");
1721   type[GLOBAL_UNKNOWN_MAX] = DOUBLE_PRECISION;
1722   data_length[GLOBAL_UNKNOWN_MAX] = nuknwn;
1723   data_class[GLOBAL_UNKNOWN_MAX] = GLOBAL_UNKNOWN_MAX;
1724   no_index[GLOBAL_UNKNOWN_MAX] = 1;
1725   print_only[GLOBAL_UNKNOWN_MAX] = 1;
1726 
1727   strcpy(name[GLOBAL_UNKNOWN_NUMBER],"global_unknown_number");
1728   type[GLOBAL_UNKNOWN_NUMBER] = INTEGER;
1729   data_length[GLOBAL_UNKNOWN_NUMBER] = 1;
1730   data_class[GLOBAL_UNKNOWN_NUMBER] = GLOBAL_UNKNOWN_NUMBER;
1731   no_index[GLOBAL_UNKNOWN_NUMBER] = 1;
1732   print_only[GLOBAL_UNKNOWN_NUMBER] = 1;
1733 
1734   strcpy(name[GLOBAL_UNKNOWN_SUM],"global_unknown_sum");
1735   type[GLOBAL_UNKNOWN_SUM] = DOUBLE_PRECISION;
1736   data_length[GLOBAL_UNKNOWN_SUM] = nuknwn;
1737   data_class[GLOBAL_UNKNOWN_SUM] = GLOBAL_UNKNOWN_SUM;
1738   no_index[GLOBAL_UNKNOWN_SUM] = 1;
1739   print_only[GLOBAL_UNKNOWN_SUM] = 1;
1740 
1741   strcpy(name[GLOBAL_VOLUME],"global_volume");
1742   type[GLOBAL_VOLUME] = DOUBLE_PRECISION;
1743   data_length[GLOBAL_VOLUME] = 1;
1744   data_class[GLOBAL_VOLUME] = GLOBAL_VOLUME;
1745   no_index[GLOBAL_VOLUME] = 1;
1746   print_only[GLOBAL_VOLUME] = 1;
1747 
1748   strcpy(name[GMRES],"gmres");
1749 
1750   strcpy(name[GROUND],"ground");
1751 
1752   strcpy(name[GROUNDFLOW],"groundflow");
1753 
1754   strcpy(name[GROUNDFLOW_ADDTOPRESSURE],"groundflow_addtopressure");
1755   type[GROUNDFLOW_ADDTOPRESSURE] = DOUBLE_PRECISION;
1756   data_length[GROUNDFLOW_ADDTOPRESSURE] = 1;
1757   no_index[GROUNDFLOW_ADDTOPRESSURE] = 1;
1758   data_class[GROUNDFLOW_ADDTOPRESSURE] = GROUNDFLOW;
1759 
1760   strcpy(name[GROUNDFLOW_DENSITY],"groundflow_density");
1761   type[GROUNDFLOW_DENSITY] = DOUBLE_PRECISION;
1762   data_length[GROUNDFLOW_DENSITY] = 1;
1763   no_index[GROUNDFLOW_DENSITY] = 1;
1764   data_class[GROUNDFLOW_DENSITY] = GROUNDFLOW;
1765 
1766   strcpy(name[GROUNDFLOW_PHREATICLEVEL],"groundflow_phreaticlevel");
1767   type[GROUNDFLOW_PHREATICLEVEL] = DOUBLE_PRECISION;
1768   data_length[GROUNDFLOW_PHREATICLEVEL] = DATA_ITEM_SIZE;
1769   fixed_length[GROUNDFLOW_PHREATICLEVEL] = 0;
1770   no_index[GROUNDFLOW_PHREATICLEVEL] = 1;
1771   data_class[GROUNDFLOW_PHREATICLEVEL] = GROUNDFLOW;
1772 
1773   strcpy(name[GROUNDFLOW_PHREATICLEVEL_N],"groundflow_phreaticlevel_n");
1774   type[GROUNDFLOW_PHREATICLEVEL_N] = INTEGER;
1775   data_length[GROUNDFLOW_PHREATICLEVEL_N] = 2;
1776   no_index[GROUNDFLOW_PHREATICLEVEL_N] = 1;
1777   data_class[GROUNDFLOW_PHREATICLEVEL_N] = GROUNDFLOW;
1778   data_required[GROUNDFLOW_PHREATICLEVEL_N] = GROUNDFLOW_PHREATICLEVEL;
1779 
1780   strcpy(name[GROUNDFLOW_PHREATICLEVEL_BOUNDA],"groundflow_phreaticlevel_bounda");
1781   type[GROUNDFLOW_PHREATICLEVEL_BOUNDA] = INTEGER;
1782   data_length[GROUNDFLOW_PHREATICLEVEL_BOUNDA] = 1;
1783   no_index[GROUNDFLOW_PHREATICLEVEL_BOUNDA] = 1;
1784   data_class[GROUNDFLOW_PHREATICLEVEL_BOUNDA] = GROUNDFLOW;
1785   data_required[GROUNDFLOW_PHREATICLEVEL_BOUNDA] = GROUNDFLOW_PHREATICLEVEL;
1786 
1787   strcpy(name[GROUNDFLOW_PHREATICLEVEL_MINIMUM],"groundflow_phreaticlevel_minimum");
1788   type[GROUNDFLOW_PHREATICLEVEL_MINIMUM] = DOUBLE_PRECISION;
1789   data_length[GROUNDFLOW_PHREATICLEVEL_MINIMUM] = 1;
1790   no_index[GROUNDFLOW_PHREATICLEVEL_MINIMUM] = 1;
1791   data_class[GROUNDFLOW_PHREATICLEVEL_MINIMUM] = GROUNDFLOW;
1792 
1793   strcpy(name[GROUNDFLOW_PRESSURE],"groundflow_pressure");
1794 
1795   strcpy(name[GROUNDFLOW_PRESSURE_ATMOSPHERIC],"groundflow_pressure_atmospheric");
1796   type[GROUNDFLOW_PRESSURE_ATMOSPHERIC] = DOUBLE_PRECISION;
1797   data_length[GROUNDFLOW_PRESSURE_ATMOSPHERIC] = 1;
1798   no_index[GROUNDFLOW_PRESSURE_ATMOSPHERIC] = 1;
1799   data_class[GROUNDFLOW_PRESSURE_ATMOSPHERIC] = GROUNDFLOW;
1800 
1801   strcpy(name[GROUNDFLOW_VELOCITY],"groundflow_velocity");
1802 
1803   strcpy(name[GROUP_AXISYMMETRIC],"group_axisymmetric");
1804   type[GROUP_AXISYMMETRIC] = INTEGER;
1805   data_length[GROUP_AXISYMMETRIC] = 1;
1806   data_class[GROUP_AXISYMMETRIC] = GROUP_AXISYMMETRIC;
1807   data_required[GROUP_AXISYMMETRIC] = GROUP_TYPE;
1808 
1809   strcpy(name[GROUP_BEAM_INERTIA],"group_beam_inertia");
1810   type[GROUP_BEAM_INERTIA] = DOUBLE_PRECISION;
1811   data_length[GROUP_BEAM_INERTIA] = 1;
1812   data_class[GROUP_BEAM_INERTIA] = BEAM;
1813   data_required[GROUP_BEAM_INERTIA] = GROUP_TYPE;
1814 
1815   strcpy(name[GROUP_BEAM_MEMORY],"group_beam_memory");
1816   type[GROUP_BEAM_MEMORY] = INTEGER;
1817   data_length[GROUP_BEAM_MEMORY] = 1;
1818   data_class[GROUP_BEAM_MEMORY] = BEAM;
1819   data_required[GROUP_BEAM_MEMORY] = GROUP_TYPE;
1820 
1821   strcpy(name[GROUP_BEAM_PLANE],"group_beam_plane");
1822   type[GROUP_BEAM_PLANE] = INTEGER;
1823   data_length[GROUP_BEAM_PLANE] = 2;
1824   data_class[GROUP_BEAM_PLANE] = BEAM;
1825   data_required[GROUP_BEAM_PLANE] = GROUP_TYPE;
1826 
1827   strcpy(name[GROUP_BEAM_YOUNG],"group_beam_young");
1828   type[GROUP_BEAM_YOUNG] = DOUBLE_PRECISION;
1829   data_length[GROUP_BEAM_YOUNG] = 1;
1830   data_class[GROUP_BEAM_YOUNG] = BEAM;
1831   data_required[GROUP_BEAM_YOUNG] = GROUP_TYPE;
1832 
1833   strcpy(name[GROUP_CONDIF_ABSORPTION],"group_condif_absorption");
1834   type[GROUP_CONDIF_ABSORPTION] = DOUBLE_PRECISION;
1835   data_length[GROUP_CONDIF_ABSORPTION] = 1;
1836   data_class[GROUP_CONDIF_ABSORPTION] = CONDIF;
1837   data_required[GROUP_CONDIF_ABSORPTION] = GROUP_TYPE;
1838 
1839   strcpy(name[GROUP_CONDIF_DENSITY],"group_condif_density");
1840   type[GROUP_CONDIF_DENSITY] = DOUBLE_PRECISION;
1841   data_length[GROUP_CONDIF_DENSITY] = 1;
1842   data_class[GROUP_CONDIF_DENSITY] = CONDIF;
1843   data_required[GROUP_CONDIF_DENSITY] = GROUP_TYPE;
1844 
1845   strcpy(name[GROUP_CONDIF_CAPACITY],"group_condif_capacity");
1846   type[GROUP_CONDIF_CAPACITY] = DOUBLE_PRECISION;
1847   data_length[GROUP_CONDIF_CAPACITY] = 1;
1848   data_class[GROUP_CONDIF_CAPACITY] = CONDIF;
1849   data_required[GROUP_CONDIF_CAPACITY] = GROUP_TYPE;
1850 
1851   strcpy(name[GROUP_CONDIF_FLOW],"group_condif_flow");
1852   type[GROUP_CONDIF_FLOW] = DOUBLE_PRECISION;
1853   data_length[GROUP_CONDIF_FLOW] = ndim;
1854   data_class[GROUP_CONDIF_FLOW] = CONDIF;
1855   data_required[GROUP_CONDIF_FLOW] = GROUP_TYPE;
1856 
1857   strcpy(name[GROUP_CONDIF_CONDUCTIVITY],"group_condif_conductivity");
1858   type[GROUP_CONDIF_CONDUCTIVITY] = DOUBLE_PRECISION;
1859   data_length[GROUP_CONDIF_CONDUCTIVITY] = 1;
1860   data_class[GROUP_CONDIF_CONDUCTIVITY] = CONDIF;
1861   data_required[GROUP_CONDIF_CONDUCTIVITY] = GROUP_TYPE;
1862 
1863   strcpy(name[GROUP_CONTACTSPRING_COHESION],"group_contactspring_cohesion");
1864   type[GROUP_CONTACTSPRING_COHESION] = DOUBLE_PRECISION;
1865   data_length[GROUP_CONTACTSPRING_COHESION] = 1;
1866   data_class[GROUP_CONTACTSPRING_COHESION] = CONTACTSPRING;
1867   data_required[GROUP_CONTACTSPRING_COHESION] = GROUP_TYPE;
1868 
1869   strcpy(name[GROUP_CONTACTSPRING_DIRECTION],"group_contactspring_direction");
1870   type[GROUP_CONTACTSPRING_DIRECTION] = DOUBLE_PRECISION;
1871   data_length[GROUP_CONTACTSPRING_DIRECTION] = MDIM;
1872   data_class[GROUP_CONTACTSPRING_DIRECTION] = CONTACTSPRING;
1873   data_required[GROUP_CONTACTSPRING_DIRECTION] = GROUP_TYPE;
1874 
1875   strcpy(name[GROUP_CONTACTSPRING_FRICTION],"group_contactspring_friction");
1876   type[GROUP_CONTACTSPRING_FRICTION] = DOUBLE_PRECISION;
1877   data_length[GROUP_CONTACTSPRING_FRICTION] = 1;
1878   data_class[GROUP_CONTACTSPRING_FRICTION] = CONTACTSPRING;
1879   data_required[GROUP_CONTACTSPRING_FRICTION] = GROUP_TYPE;
1880 
1881   strcpy(name[GROUP_CONTACTSPRING_FRICTION_AUTOMATIC],"group_contactspring_friction_automatic");
1882   type[GROUP_CONTACTSPRING_FRICTION_AUTOMATIC] = INTEGER;
1883   data_length[GROUP_CONTACTSPRING_FRICTION_AUTOMATIC] = 1;
1884   data_class[GROUP_CONTACTSPRING_FRICTION_AUTOMATIC] = CONTACTSPRING;
1885   data_required[GROUP_CONTACTSPRING_FRICTION_AUTOMATIC] = GROUP_TYPE;
1886 
1887   strcpy(name[GROUP_CONTACTSPRING_MEMORY],"group_contactspring_memory");
1888   type[GROUP_CONTACTSPRING_MEMORY] = INTEGER;
1889   data_length[GROUP_CONTACTSPRING_MEMORY] = 1;
1890   data_class[GROUP_CONTACTSPRING_MEMORY] = CONTACTSPRING;
1891   data_required[GROUP_CONTACTSPRING_MEMORY] = GROUP_TYPE;
1892 
1893   strcpy(name[GROUP_CONTACTSPRING_STIFFNESS],"group_contactspring_stiffness");
1894   type[GROUP_CONTACTSPRING_STIFFNESS] = DOUBLE_PRECISION;
1895   data_length[GROUP_CONTACTSPRING_STIFFNESS] = 2;
1896   data_class[GROUP_CONTACTSPRING_STIFFNESS] = CONTACTSPRING;
1897   data_required[GROUP_CONTACTSPRING_STIFFNESS] = GROUP_TYPE;
1898 
1899   strcpy(name[GROUP_GROUNDFLOW_CAPACITY],"group_groundflow_capacity");
1900   type[GROUP_GROUNDFLOW_CAPACITY] = DOUBLE_PRECISION;
1901   data_length[GROUP_GROUNDFLOW_CAPACITY] = 1;
1902   data_class[GROUP_GROUNDFLOW_CAPACITY] = GROUNDFLOW;
1903   data_required[GROUP_GROUNDFLOW_CAPACITY] = GROUP_TYPE;
1904 
1905   strcpy(name[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_METHOD],"group_groundflow_capacity_nonlinear_method");
1906   type[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_METHOD] = INTEGER;
1907   data_length[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_METHOD] = 1;
1908   data_class[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_METHOD] = GROUNDFLOW;
1909   data_required[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_METHOD] = GROUP_TYPE;
1910 
1911   strcpy(name[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_PARAMETERS],"group_groundflow_capacity_nonlinear_parameters");
1912   type[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_PARAMETERS] = DOUBLE_PRECISION;
1913   data_length[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_PARAMETERS] = DATA_ITEM_SIZE;
1914   data_class[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_PARAMETERS] = GROUNDFLOW;
1915   data_required[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_PARAMETERS] = GROUP_TYPE;
1916   fixed_length[GROUP_GROUNDFLOW_CAPACITY_NONLINEAR_PARAMETERS] = 0;
1917 
1918   strcpy(name[GROUP_GROUNDFLOW_MATERIDIVERGENCE],"group_groundflow_materidivergence");
1919   type[GROUP_GROUNDFLOW_MATERIDIVERGENCE] = INTEGER;
1920   data_length[GROUP_GROUNDFLOW_MATERIDIVERGENCE] = 1;
1921   data_class[GROUP_GROUNDFLOW_MATERIDIVERGENCE] = GROUNDFLOW;
1922   data_required[GROUP_GROUNDFLOW_MATERIDIVERGENCE] = GROUP_TYPE;
1923 
1924   strcpy(name[GROUP_GROUNDFLOW_PERMEABILITY],"group_groundflow_permeability");
1925   type[GROUP_GROUNDFLOW_PERMEABILITY] = DOUBLE_PRECISION;
1926   data_length[GROUP_GROUNDFLOW_PERMEABILITY] = ndim;
1927   data_class[GROUP_GROUNDFLOW_PERMEABILITY] = GROUNDFLOW;
1928   data_required[GROUP_GROUNDFLOW_PERMEABILITY] = GROUP_TYPE;
1929 
1930   strcpy(name[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_METHOD],"group_groundflow_permeability_nonlinear_method");
1931   type[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_METHOD] = INTEGER;
1932   data_length[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_METHOD] = 1;
1933   data_class[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_METHOD] = GROUNDFLOW;
1934   data_required[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_METHOD] = GROUP_TYPE;
1935 
1936   strcpy(name[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_PARAMETERS],"group_groundflow_permeability_nonlinear_parameters");
1937   type[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_PARAMETERS] = DOUBLE_PRECISION;
1938   data_length[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_PARAMETERS] = DATA_ITEM_SIZE;
1939   data_class[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_PARAMETERS] = GROUNDFLOW;
1940   data_required[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_PARAMETERS] = GROUP_TYPE;
1941   fixed_length[GROUP_GROUNDFLOW_PERMEABILITY_NONLINEAR_PARAMETERS] = 0;
1942 
1943   strcpy(name[GROUP_GROUNDFLOW_POROSITY],"group_groundflow_porosity");
1944   type[GROUP_GROUNDFLOW_POROSITY] = DOUBLE_PRECISION;
1945   data_length[GROUP_GROUNDFLOW_POROSITY] = 1;
1946   data_class[GROUP_GROUNDFLOW_POROSITY] = GROUNDFLOW;
1947   data_required[GROUP_GROUNDFLOW_POROSITY] = GROUP_TYPE;
1948 
1949   strcpy(name[GROUP_INTEGRATION_METHOD],"group_integration_method");
1950   type[GROUP_INTEGRATION_METHOD] = INTEGER;
1951   data_length[GROUP_INTEGRATION_METHOD] = 1;
1952   version_all[GROUP_INTEGRATION_METHOD] = 1;
1953   data_class[GROUP_INTEGRATION_METHOD] = GROUP_INTEGRATION_METHOD;
1954   data_required[GROUP_INTEGRATION_METHOD] = GROUP_TYPE;
1955 
1956   strcpy(name[GROUP_INTEGRATION_POINTS],"group_integration_points");
1957   type[GROUP_INTEGRATION_POINTS] = INTEGER;
1958   data_length[GROUP_INTEGRATION_POINTS] = 1;
1959   version_all[GROUP_INTEGRATION_POINTS] = 1;
1960   data_class[GROUP_INTEGRATION_POINTS] = GROUP_INTEGRATION_POINTS;
1961   data_required[GROUP_INTEGRATION_POINTS] = GROUP_TYPE;
1962 
1963   strcpy(name[GROUP_MATERI_ELASTI_CAMCLAY_G],"group_materi_elasti_camclay_g");
1964   type[GROUP_MATERI_ELASTI_CAMCLAY_G] = DOUBLE_PRECISION;
1965   data_length[GROUP_MATERI_ELASTI_CAMCLAY_G] = 1;
1966   data_class[GROUP_MATERI_ELASTI_CAMCLAY_G] = MATERI;
1967   data_required[GROUP_MATERI_ELASTI_CAMCLAY_G] = GROUP_TYPE;
1968 
1969   strcpy(name[GROUP_MATERI_ELASTI_CAMCLAY_POISSON],"group_materi_elasti_camclay_poisson");
1970   type[GROUP_MATERI_ELASTI_CAMCLAY_POISSON] = DOUBLE_PRECISION;
1971   data_length[GROUP_MATERI_ELASTI_CAMCLAY_POISSON] = 1;
1972   data_class[GROUP_MATERI_ELASTI_CAMCLAY_POISSON] = MATERI;
1973   data_required[GROUP_MATERI_ELASTI_CAMCLAY_POISSON] = GROUP_TYPE;
1974 
1975   strcpy(name[GROUP_MATERI_ELASTI_TSKH],"group_materi_elasti_tskh");
1976   type[GROUP_MATERI_ELASTI_TSKH] = DOUBLE_PRECISION;
1977   data_length[GROUP_MATERI_ELASTI_TSKH] = DATA_ITEM_SIZE;
1978   data_class[GROUP_MATERI_ELASTI_TSKH] = MATERI;
1979   fixed_length[GROUP_MATERI_ELASTI_TSKH] = 0;
1980   data_required[GROUP_MATERI_ELASTI_TSKH] = GROUP_TYPE;
1981 
1982   strcpy(name[GROUP_MATERI_DAMAGE_MAZARS],"group_materi_damage_mazars");
1983   type[GROUP_MATERI_DAMAGE_MAZARS] = DOUBLE_PRECISION;
1984   data_length[GROUP_MATERI_DAMAGE_MAZARS] = 6;
1985   data_required[GROUP_MATERI_DAMAGE_MAZARS] = GROUP_TYPE;
1986 
1987   strcpy(name[GROUP_MATERI_DAMPING],"group_materi_damping");
1988   type[GROUP_MATERI_DAMPING] = DOUBLE_PRECISION;
1989   data_length[GROUP_MATERI_DAMPING] = 1;
1990   data_required[GROUP_MATERI_DAMPING] = GROUP_TYPE;
1991 
1992   strcpy(name[GROUP_MATERI_DENSITY],"group_materi_density");
1993   type[GROUP_MATERI_DENSITY] = DOUBLE_PRECISION;
1994   data_length[GROUP_MATERI_DENSITY] = 1;
1995   data_required[GROUP_MATERI_DENSITY] = GROUP_TYPE;
1996 
1997   strcpy(name[GROUP_MATERI_DENSITY_GROUNDFLOW],"group_materi_density_groundflow");
1998   type[GROUP_MATERI_DENSITY_GROUNDFLOW] = DOUBLE_PRECISION;
1999   data_length[GROUP_MATERI_DENSITY_GROUNDFLOW] = 2;
2000   data_required[GROUP_MATERI_DENSITY_GROUNDFLOW] = GROUP_TYPE;
2001 
2002   strcpy(name[GROUP_MATERI_ELASTI_COMPRESSIBILITY],"group_materi_elasti_compressibility");
2003   type[GROUP_MATERI_ELASTI_COMPRESSIBILITY] = DOUBLE_PRECISION;
2004   data_length[GROUP_MATERI_ELASTI_COMPRESSIBILITY] = 1;
2005   data_class[GROUP_MATERI_ELASTI_COMPRESSIBILITY] = MATERI;
2006   data_required[GROUP_MATERI_ELASTI_COMPRESSIBILITY] = GROUP_TYPE;
2007 
2008   strcpy(name[GROUP_MATERI_ELASTI_LADE],"group_materi_elasti_lade");
2009   type[GROUP_MATERI_ELASTI_LADE] = DOUBLE_PRECISION;
2010   data_length[GROUP_MATERI_ELASTI_LADE] = 3;
2011   data_class[GROUP_MATERI_ELASTI_LADE] = MATERI;
2012   data_required[GROUP_MATERI_ELASTI_LADE] = GROUP_TYPE;
2013 
2014   strcpy(name[GROUP_MATERI_ELASTI_POISSON],"group_materi_elasti_poisson");
2015   type[GROUP_MATERI_ELASTI_POISSON] = DOUBLE_PRECISION;
2016   data_length[GROUP_MATERI_ELASTI_POISSON] = 1;
2017   data_class[GROUP_MATERI_ELASTI_POISSON] = MATERI;
2018   data_required[GROUP_MATERI_ELASTI_POISSON] = GROUP_TYPE;
2019 
2020   strcpy(name[GROUP_MATERI_ELASTI_SMALLSTRAIN],"group_materi_elasti_smallstrain");
2021   type[GROUP_MATERI_ELASTI_SMALLSTRAIN] = DOUBLE_PRECISION;
2022   data_length[GROUP_MATERI_ELASTI_SMALLSTRAIN] = 6;
2023   data_class[GROUP_MATERI_ELASTI_SMALLSTRAIN] = MATERI;
2024   data_required[GROUP_MATERI_ELASTI_SMALLSTRAIN] = GROUP_TYPE;
2025 
2026   strcpy(name[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY],"group_materi_elasti_transverse_isotropy");
2027   type[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY] = DOUBLE_PRECISION;
2028   data_length[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY] = 8;
2029   data_class[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY] = MATERI;
2030   data_required[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY] = GROUP_TYPE;
2031 
2032   strcpy(name[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY_GRAHOUL],"group_materi_elasti_transverse_isotropy_grahoul");
2033   type[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY_GRAHOUL] = DOUBLE_PRECISION;
2034   data_length[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY_GRAHOUL] = 1;
2035   data_class[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY_GRAHOUL] = MATERI;
2036   data_required[GROUP_MATERI_ELASTI_TRANSVERSE_ISOTROPY_GRAHOUL] = GROUP_TYPE;
2037 
2038   strcpy(name[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_ORDER],"group_materi_elasti_volumetric_young_order");
2039   type[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_ORDER] = INTEGER;
2040   data_length[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_ORDER] = 1;
2041   data_class[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_ORDER] = MATERI;
2042   data_required[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_ORDER] = GROUP_TYPE;
2043 
2044   strcpy(name[GROUP_MATERI_ELASTI_VOLUMETRIC_POISSON],"group_materi_elasti_volumetric_poisson");
2045   type[GROUP_MATERI_ELASTI_VOLUMETRIC_POISSON] = DOUBLE_PRECISION;
2046   data_length[GROUP_MATERI_ELASTI_VOLUMETRIC_POISSON] = 1;
2047   data_class[GROUP_MATERI_ELASTI_VOLUMETRIC_POISSON] = MATERI;
2048   data_required[GROUP_MATERI_ELASTI_VOLUMETRIC_POISSON] = GROUP_TYPE;
2049 
2050   strcpy(name[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_VALUES],"group_materi_elasti_volumetric_young_values");
2051   type[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_VALUES] = DOUBLE_PRECISION;
2052   data_length[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_VALUES] = DATA_ITEM_SIZE;
2053   data_class[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_VALUES] = MATERI;
2054   fixed_length[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_VALUES] = 0;
2055   data_required[GROUP_MATERI_ELASTI_VOLUMETRIC_YOUNG_VALUES] = GROUP_TYPE;
2056 
2057   strcpy(name[GROUP_MATERI_ELASTI_YOUNG],"group_materi_elasti_young");
2058   type[GROUP_MATERI_ELASTI_YOUNG] = DOUBLE_PRECISION;
2059   data_length[GROUP_MATERI_ELASTI_YOUNG] = 1;
2060   data_class[GROUP_MATERI_ELASTI_YOUNG] = MATERI;
2061   data_required[GROUP_MATERI_ELASTI_YOUNG] = GROUP_TYPE;
2062 
2063   strcpy(name[GROUP_MATERI_ELASTI_YOUNG_POLYNOMIAL],"group_materi_elasti_young_polynomial");
2064   type[GROUP_MATERI_ELASTI_YOUNG_POLYNOMIAL] = DOUBLE_PRECISION;
2065   data_length[GROUP_MATERI_ELASTI_YOUNG_POLYNOMIAL] = DATA_ITEM_SIZE;
2066   data_class[GROUP_MATERI_ELASTI_YOUNG_POLYNOMIAL] = MATERI;
2067   fixed_length[GROUP_MATERI_ELASTI_YOUNG_POLYNOMIAL] = 0;
2068   data_required[GROUP_MATERI_ELASTI_YOUNG_POLYNOMIAL] = GROUP_TYPE;
2069 
2070   strcpy(name[GROUP_MATERI_ELASTI_YOUNG_POWER],"group_materi_elasti_young_power");
2071   type[GROUP_MATERI_ELASTI_YOUNG_POWER] = DOUBLE_PRECISION;
2072   data_length[GROUP_MATERI_ELASTI_YOUNG_POWER] = 3;
2073   data_class[GROUP_MATERI_ELASTI_YOUNG_POWER] = MATERI;
2074   data_required[GROUP_MATERI_ELASTI_YOUNG_POWER] = GROUP_TYPE;
2075 
2076   strcpy(name[GROUP_MATERI_ELASTI_YOUNG_STRAINSTRESS],"group_materi_elasti_young_strainstress");
2077   type[GROUP_MATERI_ELASTI_YOUNG_STRAINSTRESS] = DOUBLE_PRECISION;
2078   data_length[GROUP_MATERI_ELASTI_YOUNG_STRAINSTRESS] = DATA_ITEM_SIZE;
2079   data_class[GROUP_MATERI_ELASTI_YOUNG_STRAINSTRESS] = MATERI;
2080   fixed_length[GROUP_MATERI_ELASTI_YOUNG_STRAINSTRESS] = 0;
2081   data_required[GROUP_MATERI_ELASTI_YOUNG_STRAINSTRESS] = GROUP_TYPE;
2082 
2083   strcpy(name[GROUP_MATERI_EXPANSION_LINEAR],"group_materi_expansion_linear");
2084   type[GROUP_MATERI_EXPANSION_LINEAR] = DOUBLE_PRECISION;
2085   data_length[GROUP_MATERI_EXPANSION_LINEAR] = 1;
2086   data_class[GROUP_MATERI_EXPANSION_LINEAR] = MATERI;
2087   data_required[GROUP_MATERI_EXPANSION_LINEAR] = GROUP_TYPE;
2088 
2089   strcpy(name[GROUP_MATERI_EXPANSION_VOLUME],"group_materi_expansion_volume");
2090   type[GROUP_MATERI_EXPANSION_VOLUME] = DOUBLE_PRECISION;
2091   data_length[GROUP_MATERI_EXPANSION_VOLUME] = 1;
2092   data_class[GROUP_MATERI_EXPANSION_VOLUME] = MATERI;
2093   data_required[GROUP_MATERI_EXPANSION_VOLUME] = GROUP_TYPE;
2094 
2095   strcpy(name[GROUP_MATERI_FAILURE_CRUCHING],"group_materi_failure_cruching");
2096   type[GROUP_MATERI_FAILURE_CRUCHING] = DOUBLE_PRECISION;
2097   data_length[GROUP_MATERI_FAILURE_CRUCHING] = 2;
2098   data_class[GROUP_MATERI_FAILURE_CRUCHING] = MATERI;
2099   data_required[GROUP_MATERI_FAILURE_CRUCHING] = GROUP_TYPE;
2100 
2101   strcpy(name[GROUP_MATERI_FAILURE_DAMAGE],"group_materi_failure_damage");
2102   type[GROUP_MATERI_FAILURE_DAMAGE] = DOUBLE_PRECISION;
2103   data_length[GROUP_MATERI_FAILURE_DAMAGE] = 2;
2104   data_class[GROUP_MATERI_FAILURE_DAMAGE] = MATERI;
2105   data_required[GROUP_MATERI_FAILURE_DAMAGE] = GROUP_TYPE;
2106 
2107   strcpy(name[GROUP_MATERI_FAILURE_PLASTI_KAPPA],"group_materi_failure_plasti_kappa");
2108   type[GROUP_MATERI_FAILURE_PLASTI_KAPPA] = DOUBLE_PRECISION;
2109   data_length[GROUP_MATERI_FAILURE_PLASTI_KAPPA] = 2;
2110   data_class[GROUP_MATERI_FAILURE_PLASTI_KAPPA] = MATERI;
2111   data_required[GROUP_MATERI_FAILURE_PLASTI_KAPPA] = GROUP_TYPE;
2112 
2113   strcpy(name[GROUP_MATERI_FAILURE_RUPTURE],"group_materi_failure_rupture");
2114   type[GROUP_MATERI_FAILURE_RUPTURE] = DOUBLE_PRECISION;
2115   data_length[GROUP_MATERI_FAILURE_RUPTURE] = 2;
2116   data_class[GROUP_MATERI_FAILURE_RUPTURE] = MATERI;
2117   data_required[GROUP_MATERI_FAILURE_RUPTURE] = GROUP_TYPE;
2118 
2119   strcpy(name[GROUP_MATERI_FAILURE_VOIDFRACTION],"group_materi_failure_voidfraction");
2120   type[GROUP_MATERI_FAILURE_VOIDFRACTION] = DOUBLE_PRECISION;
2121   data_length[GROUP_MATERI_FAILURE_VOIDFRACTION] = 2;
2122   data_class[GROUP_MATERI_FAILURE_VOIDFRACTION] = MATERI;
2123   data_required[GROUP_MATERI_FAILURE_VOIDFRACTION] = GROUP_TYPE;
2124 
2125   strcpy(name[GROUP_MATERI_HYPER_BESSELING],"group_materi_hyper_besseling");
2126   type[GROUP_MATERI_HYPER_BESSELING] = DOUBLE_PRECISION;
2127   data_length[GROUP_MATERI_HYPER_BESSELING] = 3;
2128   data_class[GROUP_MATERI_HYPER_BESSELING] = MATERI;
2129   data_required[GROUP_MATERI_HYPER_BESSELING] = GROUP_TYPE;
2130 
2131   strcpy(name[GROUP_MATERI_HYPER_BLATZ_KO],"group_materi_hyper_blatz_ko");
2132   type[GROUP_MATERI_HYPER_BLATZ_KO] = DOUBLE_PRECISION;
2133   data_length[GROUP_MATERI_HYPER_BLATZ_KO] = 2;
2134   data_class[GROUP_MATERI_HYPER_BLATZ_KO] = MATERI;
2135   data_required[GROUP_MATERI_HYPER_BLATZ_KO] = GROUP_TYPE;
2136 
2137   strcpy(name[GROUP_MATERI_HYPER_MOONEY_RIVLIN],"group_materi_hyper_mooney_rivlin");
2138   type[GROUP_MATERI_HYPER_MOONEY_RIVLIN] = DOUBLE_PRECISION;
2139   data_length[GROUP_MATERI_HYPER_MOONEY_RIVLIN] = 2;
2140   data_class[GROUP_MATERI_HYPER_MOONEY_RIVLIN] = MATERI;
2141   data_required[GROUP_MATERI_HYPER_MOONEY_RIVLIN] = GROUP_TYPE;
2142 
2143   strcpy(name[GROUP_MATERI_HYPER_NEOHOOKEAN],"group_materi_hyper_neohookean");
2144   type[GROUP_MATERI_HYPER_NEOHOOKEAN] = DOUBLE_PRECISION;
2145   data_length[GROUP_MATERI_HYPER_NEOHOOKEAN] = 1;
2146   data_class[GROUP_MATERI_HYPER_NEOHOOKEAN] = MATERI;
2147   data_required[GROUP_MATERI_HYPER_NEOHOOKEAN] = GROUP_TYPE;
2148 
2149   strcpy(name[GROUP_MATERI_HYPER_REDUCEDPOLYNOMIAL],"group_materi_hyper_reducedpolynomial");
2150   type[GROUP_MATERI_HYPER_REDUCEDPOLYNOMIAL] = DOUBLE_PRECISION;
2151   data_length[GROUP_MATERI_HYPER_REDUCEDPOLYNOMIAL] = DATA_ITEM_SIZE;
2152   data_class[GROUP_MATERI_HYPER_REDUCEDPOLYNOMIAL] = MATERI;
2153   fixed_length[GROUP_MATERI_HYPER_REDUCEDPOLYNOMIAL] = 0;
2154   data_required[GROUP_MATERI_HYPER_REDUCEDPOLYNOMIAL] = GROUP_TYPE;
2155 
2156   strcpy(name[GROUP_MATERI_HYPER_STIFFNESS],"group_materi_hyper_stiffness");
2157   type[GROUP_MATERI_HYPER_STIFFNESS] = INTEGER;
2158   data_length[GROUP_MATERI_HYPER_STIFFNESS] = 1;
2159   data_class[GROUP_MATERI_HYPER_STIFFNESS] = MATERI;
2160   data_required[GROUP_MATERI_HYPER_STIFFNESS] = GROUP_TYPE;
2161 
2162   strcpy(name[GROUP_MATERI_HYPER_VOLUMETRIC_LINEAR],"group_materi_hyper_volumetric_linear");
2163   type[GROUP_MATERI_HYPER_VOLUMETRIC_LINEAR] = DOUBLE_PRECISION;
2164   data_length[GROUP_MATERI_HYPER_VOLUMETRIC_LINEAR] = 1;
2165   data_class[GROUP_MATERI_HYPER_VOLUMETRIC_LINEAR] = MATERI;
2166   data_required[GROUP_MATERI_HYPER_VOLUMETRIC_LINEAR] = GROUP_TYPE;
2167 
2168   strcpy(name[GROUP_MATERI_HYPER_VOLUMETRIC_MURNAGHAN],"group_materi_hyper_volumetric_murnaghan");
2169   type[GROUP_MATERI_HYPER_VOLUMETRIC_MURNAGHAN] = DOUBLE_PRECISION;
2170   data_length[GROUP_MATERI_HYPER_VOLUMETRIC_MURNAGHAN] = 2;
2171   data_class[GROUP_MATERI_HYPER_VOLUMETRIC_MURNAGHAN] = MATERI;
2172   data_required[GROUP_MATERI_HYPER_VOLUMETRIC_MURNAGHAN] = GROUP_TYPE;
2173 
2174   strcpy(name[GROUP_MATERI_HYPER_VOLUMETRIC_OGDEN],"group_materi_hyper_volumetric_ogden");
2175   type[GROUP_MATERI_HYPER_VOLUMETRIC_OGDEN] = DOUBLE_PRECISION;
2176   data_length[GROUP_MATERI_HYPER_VOLUMETRIC_OGDEN] = 2;
2177   data_class[GROUP_MATERI_HYPER_VOLUMETRIC_OGDEN] = MATERI;
2178   data_required[GROUP_MATERI_HYPER_VOLUMETRIC_OGDEN] = GROUP_TYPE;
2179 
2180   strcpy(name[GROUP_MATERI_HYPER_VOLUMETRIC_POLYNOMIAL],"group_materi_hyper_volumetric_polynomial");
2181   type[GROUP_MATERI_HYPER_VOLUMETRIC_POLYNOMIAL] = DOUBLE_PRECISION;
2182   data_length[GROUP_MATERI_HYPER_VOLUMETRIC_POLYNOMIAL] = DATA_ITEM_SIZE;
2183   data_class[GROUP_MATERI_HYPER_VOLUMETRIC_POLYNOMIAL] = MATERI;
2184   fixed_length[GROUP_MATERI_HYPER_VOLUMETRIC_POLYNOMIAL] = 0;
2185   data_required[GROUP_MATERI_HYPER_VOLUMETRIC_POLYNOMIAL] = GROUP_TYPE;
2186 
2187   strcpy(name[GROUP_MATERI_HYPER_VOLUMETRIC_SIMOTAYLOR],"group_materi_hyper_volumetric_simotaylor");
2188   type[GROUP_MATERI_HYPER_VOLUMETRIC_SIMOTAYLOR] = DOUBLE_PRECISION;
2189   data_length[GROUP_MATERI_HYPER_VOLUMETRIC_SIMOTAYLOR] = 1;
2190   data_class[GROUP_MATERI_HYPER_VOLUMETRIC_SIMOTAYLOR] = MATERI;
2191   data_required[GROUP_MATERI_HYPER_VOLUMETRIC_SIMOTAYLOR] = GROUP_TYPE;
2192 
2193   strcpy(name[GROUP_MATERI_MAXWELL_CHAIN],"group_materi_maxwell_chain");
2194   type[GROUP_MATERI_MAXWELL_CHAIN] = DOUBLE_PRECISION;
2195   data_length[GROUP_MATERI_MAXWELL_CHAIN] = materi_maxwell_stress*2;
2196   data_class[GROUP_MATERI_MAXWELL_CHAIN] = MATERI;
2197   data_required[GROUP_MATERI_MAXWELL_CHAIN] = GROUP_TYPE;
2198 
2199   strcpy(name[GROUP_MATERI_MAXWELL_CHAIN_NONLINEAR],"group_materi_maxwell_chain_nonlinear");
2200   type[GROUP_MATERI_MAXWELL_CHAIN_NONLINEAR] = DOUBLE_PRECISION;
2201   data_length[GROUP_MATERI_MAXWELL_CHAIN_NONLINEAR] = materi_maxwell_stress;
2202   data_class[GROUP_MATERI_MAXWELL_CHAIN_NONLINEAR] = MATERI;
2203   data_required[GROUP_MATERI_MAXWELL_CHAIN_NONLINEAR] = GROUP_TYPE;
2204 
2205   strcpy(name[GROUP_MATERI_MEMBRANE],"group_materi_membrane");
2206   type[GROUP_MATERI_MEMBRANE] = INTEGER;
2207   data_length[GROUP_MATERI_MEMBRANE] = 1;
2208   data_class[GROUP_MATERI_MEMBRANE] = MATERI;
2209   data_required[GROUP_MATERI_MEMBRANE] = GROUP_TYPE;
2210 
2211   strcpy(name[GROUP_MATERI_MEMORY],"group_materi_memory");
2212   type[GROUP_MATERI_MEMORY] = INTEGER;
2213   data_length[GROUP_MATERI_MEMORY] = 1;
2214   data_class[GROUP_MATERI_MEMORY] = MATERI;
2215   data_required[GROUP_MATERI_MEMORY] = GROUP_TYPE;
2216 
2217   strcpy(name[GROUP_MATERI_PLASTI_AITSKH],"group_materi_plasti_aitskh");
2218   type[GROUP_MATERI_PLASTI_AITSKH] = DOUBLE_PRECISION;
2219   data_length[GROUP_MATERI_PLASTI_AITSKH] = DATA_ITEM_SIZE;
2220   data_class[GROUP_MATERI_PLASTI_AITSKH] = MATERI;
2221   fixed_length[GROUP_MATERI_PLASTI_AITSKH] = 0;
2222   data_required[GROUP_MATERI_PLASTI_AITSKH] = GROUP_TYPE;
2223 
2224   strcpy(name[GROUP_MATERI_PLASTI_BOUNDARY],"group_materi_plasti_boundary");
2225   type[GROUP_MATERI_PLASTI_BOUNDARY] = INTEGER;
2226   data_length[GROUP_MATERI_PLASTI_BOUNDARY] = DATA_ITEM_SIZE;
2227   data_class[GROUP_MATERI_PLASTI_BOUNDARY] = MATERI;
2228   fixed_length[GROUP_MATERI_PLASTI_BOUNDARY] = 0;
2229   data_required[GROUP_MATERI_PLASTI_BOUNDARY] = GROUP_TYPE;
2230 
2231   strcpy(name[GROUP_MATERI_PLASTI_BOUNDARY_FACTOR],"group_materi_plasti_boundary_factor");
2232   type[GROUP_MATERI_PLASTI_BOUNDARY_FACTOR] = DOUBLE_PRECISION;
2233   data_length[GROUP_MATERI_PLASTI_BOUNDARY_FACTOR] = 1;
2234   data_class[GROUP_MATERI_PLASTI_BOUNDARY_FACTOR] = MATERI;
2235   data_required[GROUP_MATERI_PLASTI_BOUNDARY_FACTOR] = GROUP_TYPE;
2236 
2237   strcpy(name[GROUP_MATERI_PLASTI_CAMCLAY],"group_materi_plasti_camclay");
2238   type[GROUP_MATERI_PLASTI_CAMCLAY] = DOUBLE_PRECISION;
2239   data_length[GROUP_MATERI_PLASTI_CAMCLAY] = 4;
2240   data_class[GROUP_MATERI_PLASTI_CAMCLAY] = MATERI;
2241   data_required[GROUP_MATERI_PLASTI_CAMCLAY] = GROUP_TYPE;
2242 
2243   strcpy(name[GROUP_MATERI_PLASTI_CAMCLAY_INCREMENTAL],"group_materi_plasti_camclay_incremental");
2244   type[GROUP_MATERI_PLASTI_CAMCLAY_INCREMENTAL] = DOUBLE_PRECISION;
2245   data_length[GROUP_MATERI_PLASTI_CAMCLAY_INCREMENTAL] = 4;
2246   data_class[GROUP_MATERI_PLASTI_CAMCLAY_INCREMENTAL] = MATERI;
2247   data_required[GROUP_MATERI_PLASTI_CAMCLAY_INCREMENTAL] = GROUP_TYPE;
2248 
2249   strcpy(name[GROUP_MATERI_PLASTI_CAP],"group_materi_plasti_cap");
2250   type[GROUP_MATERI_PLASTI_CAP] = DOUBLE_PRECISION;
2251   data_length[GROUP_MATERI_PLASTI_CAP] = DATA_ITEM_SIZE;
2252   data_class[GROUP_MATERI_PLASTI_CAP] = MATERI;
2253   fixed_length[GROUP_MATERI_PLASTI_CAP] = 0;
2254   data_required[GROUP_MATERI_PLASTI_CAP] = GROUP_TYPE;
2255 
2256   strcpy(name[GROUP_MATERI_PLASTI_COMPRESSION],"group_materi_plasti_compression");
2257   type[GROUP_MATERI_PLASTI_COMPRESSION] = DOUBLE_PRECISION;
2258   data_length[GROUP_MATERI_PLASTI_COMPRESSION] = 1;
2259   data_class[GROUP_MATERI_PLASTI_COMPRESSION] = MATERI;
2260   data_required[GROUP_MATERI_PLASTI_COMPRESSION] = GROUP_TYPE;
2261 
2262   strcpy(name[GROUP_MATERI_PLASTI_DIPRISCO],"group_materi_plasti_diprisco");
2263   type[GROUP_MATERI_PLASTI_DIPRISCO] = DOUBLE_PRECISION;
2264   data_length[GROUP_MATERI_PLASTI_DIPRISCO] = 10;
2265   data_class[GROUP_MATERI_PLASTI_DIPRISCO] = MATERI;
2266   data_required[GROUP_MATERI_PLASTI_DIPRISCO] = GROUP_TYPE;
2267 
2268   strcpy(name[GROUP_MATERI_PLASTI_DIPRISCO_RT],"group_materi_plasti_diprisco_rt");
2269   type[GROUP_MATERI_PLASTI_DIPRISCO_RT] = DOUBLE_PRECISION;
2270   data_length[GROUP_MATERI_PLASTI_DIPRISCO_RT] = 1;
2271   data_class[GROUP_MATERI_PLASTI_DIPRISCO_RT] = MATERI;
2272   data_required[GROUP_MATERI_PLASTI_DIPRISCO_RT] = GROUP_TYPE;
2273 
2274   strcpy(name[GROUP_MATERI_PLASTI_DRUCKPRAG],"group_materi_plasti_druckprag");
2275   type[GROUP_MATERI_PLASTI_DRUCKPRAG] = DOUBLE_PRECISION;
2276   data_length[GROUP_MATERI_PLASTI_DRUCKPRAG] = 3;
2277   data_class[GROUP_MATERI_PLASTI_DRUCKPRAG] = MATERI;
2278   data_required[GROUP_MATERI_PLASTI_DRUCKPRAG] = GROUP_TYPE;
2279 
2280   strcpy(name[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONCUTOFF],"group_materi_plasti_druckprag_tensioncutoff");
2281   type[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONCUTOFF] = INTEGER;
2282   data_length[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONCUTOFF] = 1;
2283   data_class[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONCUTOFF] = MATERI;
2284   data_required[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONCUTOFF] = GROUP_TYPE;
2285 
2286   strcpy(name[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONLIMIT],"group_materi_plasti_druckprag_tensionlimit");
2287   type[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONLIMIT] = INTEGER;
2288   data_length[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONLIMIT] = 1;
2289   data_class[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONLIMIT] = MATERI;
2290   data_required[GROUP_MATERI_PLASTI_DRUCKPRAG_TENSIONLIMIT] = GROUP_TYPE;
2291 
2292   strcpy(name[GROUP_MATERI_PLASTI_GURSON],"group_materi_plasti_gurson");
2293   type[GROUP_MATERI_PLASTI_GURSON] = DOUBLE_PRECISION;
2294   data_length[GROUP_MATERI_PLASTI_GURSON] = 4;
2295   data_class[GROUP_MATERI_PLASTI_GURSON] = MATERI;
2296   data_required[GROUP_MATERI_PLASTI_GURSON] = GROUP_TYPE;
2297 
2298   strcpy(name[GROUP_MATERI_PLASTI_HLC],"group_materi_plasti_hlc");
2299   type[GROUP_MATERI_PLASTI_HLC] = DOUBLE_PRECISION;
2300   data_length[GROUP_MATERI_PLASTI_HLC] = 5;
2301   data_class[GROUP_MATERI_PLASTI_HLC] = MATERI;
2302   data_required[GROUP_MATERI_PLASTI_HLC] = GROUP_TYPE;
2303 
2304   strcpy(name[GROUP_MATERI_PLASTI_HEATGENERATION], "group_materi_plasti_heatgeneration");
2305   type[GROUP_MATERI_PLASTI_HEATGENERATION] = DOUBLE_PRECISION;
2306   data_length[GROUP_MATERI_PLASTI_HEATGENERATION] = 1;
2307   data_class[GROUP_MATERI_PLASTI_HEATGENERATION] = MATERI;
2308   data_required[GROUP_MATERI_PLASTI_HEATGENERATION] = GROUP_TYPE;
2309 
2310   strcpy(name[GROUP_MATERI_PLASTI_HYPO_LOWANGLES],"group_materi_plasti_hypo_lowangles");
2311   type[GROUP_MATERI_PLASTI_HYPO_LOWANGLES] = DOUBLE_PRECISION;
2312   data_length[GROUP_MATERI_PLASTI_HYPO_LOWANGLES] = 10;
2313   data_class[GROUP_MATERI_PLASTI_HYPO_LOWANGLES] = MATERI;
2314   data_required[GROUP_MATERI_PLASTI_HYPO_LOWANGLES] = GROUP_TYPE;
2315 
2316   strcpy(name[GROUP_MATERI_PLASTI_HYPO_COHESION],"group_materi_plasti_hypo_cohesion");
2317   type[GROUP_MATERI_PLASTI_HYPO_COHESION] = DOUBLE_PRECISION;
2318   data_length[GROUP_MATERI_PLASTI_HYPO_COHESION] = 1;
2319   data_class[GROUP_MATERI_PLASTI_HYPO_COHESION] = MATERI;
2320   data_required[GROUP_MATERI_PLASTI_HYPO_COHESION] = GROUP_TYPE;
2321 
2322   strcpy(name[GROUP_MATERI_PLASTI_HYPO_INTERGRANULARSTRAIN],"group_materi_plasti_hypo_intergranularstrain");
2323   type[GROUP_MATERI_PLASTI_HYPO_INTERGRANULARSTRAIN] = DOUBLE_PRECISION;
2324   data_length[GROUP_MATERI_PLASTI_HYPO_INTERGRANULARSTRAIN] = 5;
2325   data_class[GROUP_MATERI_PLASTI_HYPO_INTERGRANULARSTRAIN] = MATERI;
2326   data_required[GROUP_MATERI_PLASTI_HYPO_INTERGRANULARSTRAIN] = GROUP_TYPE;
2327 
2328   strcpy(name[GROUP_MATERI_PLASTI_HYPO_PRESSUREDEPENDENTVOIDRATIO],
2329     "group_materi_plasti_hypo_pressuredependentvoidratio");
2330   type[GROUP_MATERI_PLASTI_HYPO_PRESSUREDEPENDENTVOIDRATIO] = INTEGER;
2331   data_length[GROUP_MATERI_PLASTI_HYPO_PRESSUREDEPENDENTVOIDRATIO] = 1;
2332   data_class[GROUP_MATERI_PLASTI_HYPO_PRESSUREDEPENDENTVOIDRATIO] = MATERI;
2333   data_required[GROUP_MATERI_PLASTI_HYPO_PRESSUREDEPENDENTVOIDRATIO] = GROUP_TYPE;
2334 
2335   strcpy(name[GROUP_MATERI_PLASTI_HYPO_WOLFERSDORFF],"group_materi_plasti_hypo_wolfersdorff");
2336   type[GROUP_MATERI_PLASTI_HYPO_WOLFERSDORFF] = DOUBLE_PRECISION;
2337   data_length[GROUP_MATERI_PLASTI_HYPO_WOLFERSDORFF] = 8;
2338   data_class[GROUP_MATERI_PLASTI_HYPO_WOLFERSDORFF] = MATERI;
2339   data_required[GROUP_MATERI_PLASTI_HYPO_WOLFERSDORFF] = GROUP_TYPE;
2340 
2341   strcpy(name[GROUP_MATERI_PLASTI_INCREMENTAL_ERASERECENTHISTORY], "group_materi_plasti_incremental_eraserecenthistory");
2342   type[GROUP_MATERI_PLASTI_INCREMENTAL_ERASERECENTHISTORY] = INTEGER;
2343   data_length[GROUP_MATERI_PLASTI_INCREMENTAL_ERASERECENTHISTORY] = 1;
2344   data_class[GROUP_MATERI_PLASTI_INCREMENTAL_ERASERECENTHISTORY] = MATERI;
2345   data_required[GROUP_MATERI_PLASTI_INCREMENTAL_ERASERECENTHISTORY] = GROUP_TYPE;
2346 
2347   strcpy(name[GROUP_MATERI_PLASTI_INCREMENTAL_FEERROR],"group_materi_plasti_incremental_feerror");
2348   type[GROUP_MATERI_PLASTI_INCREMENTAL_FEERROR] = DOUBLE_PRECISION;
2349   data_length[GROUP_MATERI_PLASTI_INCREMENTAL_FEERROR] = 1;
2350   data_class[GROUP_MATERI_PLASTI_INCREMENTAL_FEERROR] = MATERI;
2351   data_required[GROUP_MATERI_PLASTI_INCREMENTAL_FEERROR] = GROUP_TYPE;
2352 
2353   strcpy(name[GROUP_MATERI_PLASTI_INCREMENTAL_FESUBSTEPS],"group_materi_plasti_incremental_fesubsteps");
2354   type[GROUP_MATERI_PLASTI_INCREMENTAL_FESUBSTEPS] = DOUBLE_PRECISION;
2355   data_length[GROUP_MATERI_PLASTI_INCREMENTAL_FESUBSTEPS] = 1;
2356   data_class[GROUP_MATERI_PLASTI_INCREMENTAL_FESUBSTEPS] = MATERI;
2357   data_required[GROUP_MATERI_PLASTI_INCREMENTAL_FESUBSTEPS] = GROUP_TYPE;
2358 
2359   strcpy(name[GROUP_MATERI_PLASTI_INCREMENTAL_MAXSUBSTEPS],"group_materi_plasti_incremental_maxsubsteps");
2360   type[GROUP_MATERI_PLASTI_INCREMENTAL_MAXSUBSTEPS] = DOUBLE_PRECISION;
2361   data_length[GROUP_MATERI_PLASTI_INCREMENTAL_MAXSUBSTEPS] = 1;
2362   data_class[GROUP_MATERI_PLASTI_INCREMENTAL_MAXSUBSTEPS] = MATERI;
2363   data_required[GROUP_MATERI_PLASTI_INCREMENTAL_MAXSUBSTEPS] = GROUP_TYPE;
2364 
2365   strcpy(name[GROUP_MATERI_PLASTI_INCREMENTAL_MINSUBSTEPS],"group_materi_plasti_incremental_minsubsteps");
2366   type[GROUP_MATERI_PLASTI_INCREMENTAL_MINSUBSTEPS] = DOUBLE_PRECISION;
2367   data_length[GROUP_MATERI_PLASTI_INCREMENTAL_MINSUBSTEPS] = 1;
2368   data_class[GROUP_MATERI_PLASTI_INCREMENTAL_MINSUBSTEPS] = MATERI;
2369   data_required[GROUP_MATERI_PLASTI_INCREMENTAL_MINSUBSTEPS] = GROUP_TYPE;
2370 
2371   strcpy(name[GROUP_MATERI_PLASTI_INCREMENTAL_PRINTF],"group_materi_plasti_incremental_printf");
2372   type[GROUP_MATERI_PLASTI_INCREMENTAL_PRINTF] = INTEGER;
2373   data_length[GROUP_MATERI_PLASTI_INCREMENTAL_PRINTF] = 1;
2374   data_class[GROUP_MATERI_PLASTI_INCREMENTAL_PRINTF] = MATERI;
2375   data_required[GROUP_MATERI_PLASTI_INCREMENTAL_PRINTF] = GROUP_TYPE;
2376 
2377   strcpy(name[GROUP_MATERI_PLASTI_INCREMENTAL_USEMATRIX],"group_materi_plasti_incremental_usematrix");
2378   type[GROUP_MATERI_PLASTI_INCREMENTAL_USEMATRIX] = INTEGER;
2379   data_length[GROUP_MATERI_PLASTI_INCREMENTAL_USEMATRIX] = 1;
2380   data_class[GROUP_MATERI_PLASTI_INCREMENTAL_USEMATRIX] = MATERI;
2381   data_required[GROUP_MATERI_PLASTI_INCREMENTAL_USEMATRIX] = GROUP_TYPE;
2382 
2383   strcpy(name[GROUP_MATERI_PLASTI_KINEMATIC_HARDENING],"group_materi_plasti_kinematic_hardening");
2384   type[GROUP_MATERI_PLASTI_KINEMATIC_HARDENING] = DOUBLE_PRECISION;
2385   data_length[GROUP_MATERI_PLASTI_KINEMATIC_HARDENING] = 1;
2386   data_class[GROUP_MATERI_PLASTI_KINEMATIC_HARDENING] = MATERI;
2387   data_required[GROUP_MATERI_PLASTI_KINEMATIC_HARDENING] = GROUP_TYPE;
2388 
2389   strcpy(name[GROUP_MATERI_PLASTI_MATSUOKANAKAI],"group_materi_plasti_matsuokanakai");
2390   type[GROUP_MATERI_PLASTI_MATSUOKANAKAI] = DOUBLE_PRECISION;
2391   data_length[GROUP_MATERI_PLASTI_MATSUOKANAKAI] = 3;
2392   data_class[GROUP_MATERI_PLASTI_MATSUOKANAKAI] = MATERI;
2393   data_required[GROUP_MATERI_PLASTI_MATSUOKANAKAI] = GROUP_TYPE;
2394 
2395   strcpy(name[GROUP_MATERI_PLASTI_MATSUOKANAKAI_TENSIONCUTOFF],"group_materi_plasti_matsuokanakai_tensioncutoff");
2396   type[GROUP_MATERI_PLASTI_MATSUOKANAKAI_TENSIONCUTOFF] = INTEGER;
2397   data_length[GROUP_MATERI_PLASTI_MATSUOKANAKAI_TENSIONCUTOFF] = 1;
2398   data_class[GROUP_MATERI_PLASTI_MATSUOKANAKAI_TENSIONCUTOFF] = MATERI;
2399   data_required[GROUP_MATERI_PLASTI_MATSUOKANAKAI_TENSIONCUTOFF] = GROUP_TYPE;
2400 
2401   strcpy(name[GROUP_MATERI_PLASTI_MOHRCOUL],"group_materi_plasti_mohrcoul");
2402   type[GROUP_MATERI_PLASTI_MOHRCOUL] = DOUBLE_PRECISION;
2403   data_length[GROUP_MATERI_PLASTI_MOHRCOUL] = 3;
2404   data_class[GROUP_MATERI_PLASTI_MOHRCOUL] = MATERI;
2405   data_required[GROUP_MATERI_PLASTI_MOHRCOUL] = GROUP_TYPE;
2406 
2407   strcpy(name[GROUP_MATERI_PLASTI_MOHRCOUL_SOFTENING],"group_materi_plasti_mohrcoul_softening");
2408   type[GROUP_MATERI_PLASTI_MOHRCOUL_SOFTENING] = DOUBLE_PRECISION;
2409   data_length[GROUP_MATERI_PLASTI_MOHRCOUL_SOFTENING] = 7;
2410   data_class[GROUP_MATERI_PLASTI_MOHRCOUL_SOFTENING] = MATERI;
2411   data_required[GROUP_MATERI_PLASTI_MOHRCOUL_SOFTENING] = GROUP_TYPE;
2412 
2413   strcpy(name[GROUP_MATERI_PLASTI_MOHRCOUL_TENSIONCUTOFF],"group_materi_plasti_mohrcoul_tensioncutoff");
2414   type[GROUP_MATERI_PLASTI_MOHRCOUL_TENSIONCUTOFF] = INTEGER;
2415   data_length[GROUP_MATERI_PLASTI_MOHRCOUL_TENSIONCUTOFF] = 1;
2416   data_class[GROUP_MATERI_PLASTI_MOHRCOUL_TENSIONCUTOFF] = MATERI;
2417   data_required[GROUP_MATERI_PLASTI_MOHRCOUL_TENSIONCUTOFF] = GROUP_TYPE;
2418 
2419   strcpy(name[GROUP_MATERI_PLASTI_STRESS],"group_materi_plasti_stress");
2420   type[GROUP_MATERI_PLASTI_STRESS] = DOUBLE_PRECISION;
2421   data_length[GROUP_MATERI_PLASTI_STRESS] = 1;
2422   data_class[GROUP_MATERI_PLASTI_STRESS] = MATERI;
2423   data_required[GROUP_MATERI_PLASTI_STRESS] = GROUP_TYPE;
2424 
2425   strcpy(name[GROUP_MATERI_PLASTI_TENSION],"group_materi_plasti_tension");
2426   type[GROUP_MATERI_PLASTI_TENSION] = DOUBLE_PRECISION;
2427   data_length[GROUP_MATERI_PLASTI_TENSION] = 1;
2428   data_class[GROUP_MATERI_PLASTI_TENSION] = MATERI;
2429   data_required[GROUP_MATERI_PLASTI_TENSION] = GROUP_TYPE;
2430 
2431   strcpy(name[GROUP_MATERI_PLASTI_TSKH],"group_materi_plasti_tskh");
2432   type[GROUP_MATERI_PLASTI_TSKH] = DOUBLE_PRECISION;
2433   data_length[GROUP_MATERI_PLASTI_TSKH] = DATA_ITEM_SIZE;
2434   data_class[GROUP_MATERI_PLASTI_TSKH] = MATERI;
2435   fixed_length[GROUP_MATERI_PLASTI_TSKH] = 0;
2436   data_required[GROUP_MATERI_PLASTI_TSKH] = GROUP_TYPE;
2437 
2438   strcpy(name[GROUP_MATERI_PLASTI_USER],"group_materi_plasti_user");
2439   type[GROUP_MATERI_PLASTI_USER] = INTEGER;
2440   data_length[GROUP_MATERI_PLASTI_USER] = 1;
2441   data_class[GROUP_MATERI_PLASTI_USER] = MATERI;
2442   data_required[GROUP_MATERI_PLASTI_USER] = GROUP_TYPE;
2443 
2444   strcpy(name[GROUP_MATERI_PLASTI_VISCO_ALWAYS],"group_materi_plasti_visco_always");
2445   type[GROUP_MATERI_PLASTI_VISCO_ALWAYS] = INTEGER;
2446   data_length[GROUP_MATERI_PLASTI_VISCO_ALWAYS] = 1;
2447   data_class[GROUP_MATERI_PLASTI_VISCO_ALWAYS] = MATERI;
2448   data_required[GROUP_MATERI_PLASTI_VISCO_ALWAYS] = GROUP_TYPE;
2449 
2450   strcpy(name[GROUP_MATERI_PLASTI_VISCO_EXPONENTIAL],"group_materi_plasti_visco_exponential");
2451   type[GROUP_MATERI_PLASTI_VISCO_EXPONENTIAL] = DOUBLE_PRECISION;
2452   data_length[GROUP_MATERI_PLASTI_VISCO_EXPONENTIAL] = 2;
2453   data_class[GROUP_MATERI_PLASTI_VISCO_EXPONENTIAL] = MATERI;
2454   data_required[GROUP_MATERI_PLASTI_VISCO_EXPONENTIAL] = GROUP_TYPE;
2455 
2456   strcpy(name[GROUP_MATERI_PLASTI_VISCO_POWER],"group_materi_plasti_visco_power");
2457   type[GROUP_MATERI_PLASTI_VISCO_POWER] = DOUBLE_PRECISION;
2458   data_length[GROUP_MATERI_PLASTI_VISCO_POWER] = 3;
2459   data_class[GROUP_MATERI_PLASTI_VISCO_POWER] = MATERI;
2460   data_required[GROUP_MATERI_PLASTI_VISCO_POWER] = GROUP_TYPE;
2461 
2462   strcpy(name[GROUP_MATERI_PLASTI_VONMISES],"group_materi_plasti_vonmises");
2463   type[GROUP_MATERI_PLASTI_VONMISES] = DOUBLE_PRECISION;
2464   data_length[GROUP_MATERI_PLASTI_VONMISES] = 1;
2465   data_class[GROUP_MATERI_PLASTI_VONMISES] = MATERI;
2466   data_required[GROUP_MATERI_PLASTI_VONMISES] = GROUP_TYPE;
2467 
2468   strcpy(name[GROUP_MATERI_PLASTI_VONMISES_NADAI],"group_materi_plasti_vonmises_nadai");
2469   type[GROUP_MATERI_PLASTI_VONMISES_NADAI] = DOUBLE_PRECISION;
2470   data_length[GROUP_MATERI_PLASTI_VONMISES_NADAI] = 3;
2471   data_class[GROUP_MATERI_PLASTI_VONMISES_NADAI] = MATERI;
2472   data_required[GROUP_MATERI_PLASTI_VONMISES_NADAI] = GROUP_TYPE;
2473 
2474   strcpy(name[GROUP_MATERI_STOKES],"group_materi_stokes");
2475   type[GROUP_MATERI_STOKES] = INTEGER;
2476   data_length[GROUP_MATERI_STOKES] = 1;
2477   data_class[GROUP_MATERI_STOKES] = MATERI;
2478   data_required[GROUP_MATERI_STOKES] = GROUP_TYPE;
2479 
2480   strcpy(name[GROUP_MATERI_VISCOSITY],"group_materi_viscosity");
2481   type[GROUP_MATERI_VISCOSITY] = DOUBLE_PRECISION;
2482   data_length[GROUP_MATERI_VISCOSITY] = 1;
2483   data_class[GROUP_MATERI_VISCOSITY] = MATERI;
2484   data_required[GROUP_MATERI_VISCOSITY] = GROUP_TYPE;
2485 
2486   strcpy(name[GROUP_MATERI_VISCOSITY_HEATGENERATION],"group_materi_viscosity_heatgeneration");
2487   type[GROUP_MATERI_VISCOSITY_HEATGENERATION] = INTEGER;
2488   data_length[GROUP_MATERI_VISCOSITY_HEATGENERATION] = 1;
2489   data_class[GROUP_MATERI_VISCOSITY_HEATGENERATION] = MATERI;
2490   data_required[GROUP_MATERI_VISCOSITY_HEATGENERATION] = GROUP_TYPE;
2491 
2492   strcpy(name[GROUP_MATERI_VISCOSITY_USER],"group_materi_viscosity_user");
2493   type[GROUP_MATERI_VISCOSITY_USER] = INTEGER;
2494   data_length[GROUP_MATERI_VISCOSITY_USER] = 1;
2495   data_class[GROUP_MATERI_VISCOSITY_USER] = MATERI;
2496   data_required[GROUP_MATERI_VISCOSITY_USER] = GROUP_TYPE;
2497 
2498   strcpy(name[GROUP_MATRIX_SECOND_VALUES],"group_matrix_second_values");
2499   type[GROUP_MATRIX_SECOND_VALUES] = DOUBLE_PRECISION;
2500   data_length[GROUP_MATRIX_SECOND_VALUES] = 0; // set run-time
2501   fixed_length[GROUP_MATRIX_SECOND_VALUES] = 0;
2502   data_class[GROUP_MATRIX_SECOND_VALUES] = GROUP_MATRIX_SECOND_VALUES;
2503   external[GROUP_MATRIX_SECOND_VALUES] = 0;
2504   data_required[GROUP_MATRIX_SECOND_VALUES] = GROUP_TYPE;
2505 
2506   strcpy(name[GROUP_MATRIX_UNKNOWNS],"group_matrix_unknowns");
2507   type[GROUP_MATRIX_UNKNOWNS] = INTEGER;
2508   data_length[GROUP_MATRIX_UNKNOWNS] = 0; // set run-time
2509   fixed_length[GROUP_MATRIX_UNKNOWNS] = 0;
2510   data_class[GROUP_MATRIX_UNKNOWNS] = GROUP_MATRIX_UNKNOWNS;
2511   external[GROUP_MATRIX_UNKNOWNS] = 0;
2512   data_required[GROUP_MATRIX_UNKNOWNS] = GROUP_TYPE;
2513 
2514   strcpy(name[GROUP_MATRIX_VALUES],"group_matrix_values");
2515   type[GROUP_MATRIX_VALUES] = DOUBLE_PRECISION;
2516   data_length[GROUP_MATRIX_VALUES] = 0; // set run-time
2517   fixed_length[GROUP_MATRIX_VALUES] = 0;
2518   data_class[GROUP_MATRIX_VALUES] = GROUP_MATRIX_VALUES;
2519   external[GROUP_MATRIX_VALUES] = 0;
2520   data_required[GROUP_MATRIX_VALUES] = GROUP_TYPE;
2521 
2522   strcpy(name[GROUP_MAXWELL_FREQUENCY_EIGEN],"group_maxwell_frequency_eigen");
2523   type[GROUP_MAXWELL_FREQUENCY_EIGEN] = INTEGER;
2524   data_length[GROUP_MAXWELL_FREQUENCY_EIGEN] = 1;
2525   data_class[GROUP_MAXWELL_FREQUENCY_EIGEN] = MAXWELL_FREQUENCY;
2526   data_required[GROUP_MAXWELL_FREQUENCY_EIGEN] = GROUP_TYPE;
2527 
2528   strcpy(name[GROUP_MAXWELL_FREQUENCY_EPSILON],"group_maxwell_frequency_epsilon");
2529   type[GROUP_MAXWELL_FREQUENCY_EPSILON] = DOUBLE_PRECISION;
2530   data_length[GROUP_MAXWELL_FREQUENCY_EPSILON] = 2;
2531   data_class[GROUP_MAXWELL_FREQUENCY_EPSILON] = MAXWELL_FREQUENCY;
2532   data_required[GROUP_MAXWELL_FREQUENCY_EPSILON] = GROUP_TYPE;
2533 
2534   strcpy(name[GROUP_MAXWELL_FREQUENCY_EPSILON_ANISOTROPIC],"group_maxwell_frequency_epsilon_anisotropic");
2535   type[GROUP_MAXWELL_FREQUENCY_EPSILON_ANISOTROPIC] = DOUBLE_PRECISION;
2536   data_length[GROUP_MAXWELL_FREQUENCY_EPSILON_ANISOTROPIC] = MDIM*2;
2537   data_class[GROUP_MAXWELL_FREQUENCY_EPSILON_ANISOTROPIC] = MAXWELL_FREQUENCY;
2538   data_required[GROUP_MAXWELL_FREQUENCY_EPSILON_ANISOTROPIC] = GROUP_TYPE;
2539 
2540   strcpy(name[GROUP_MAXWELL_FREQUENCY_J],"group_maxwell_frequency_j");
2541   type[GROUP_MAXWELL_FREQUENCY_J] = DOUBLE_PRECISION;
2542   data_length[GROUP_MAXWELL_FREQUENCY_J] = 2*MDIM;
2543   data_class[GROUP_MAXWELL_FREQUENCY_J] = MAXWELL_FREQUENCY;
2544   data_required[GROUP_MAXWELL_FREQUENCY_J] = GROUP_TYPE;
2545 
2546   strcpy(name[GROUP_MAXWELL_FREQUENCY_MU],"group_maxwell_frequency_mu");
2547   type[GROUP_MAXWELL_FREQUENCY_MU] = DOUBLE_PRECISION;
2548   data_length[GROUP_MAXWELL_FREQUENCY_MU] = 2;
2549   data_class[GROUP_MAXWELL_FREQUENCY_MU] = MAXWELL_FREQUENCY;
2550   data_required[GROUP_MAXWELL_FREQUENCY_MU] = GROUP_TYPE;
2551 
2552   strcpy(name[GROUP_MAXWELL_FREQUENCY_PENALTY],"group_maxwell_frequency_penalty");
2553   type[GROUP_MAXWELL_FREQUENCY_PENALTY] = DOUBLE_PRECISION;
2554   data_length[GROUP_MAXWELL_FREQUENCY_PENALTY] = 1;
2555   data_class[GROUP_MAXWELL_FREQUENCY_PENALTY] = MAXWELL_FREQUENCY;
2556   data_required[GROUP_MAXWELL_FREQUENCY_PENALTY] = GROUP_TYPE;
2557 
2558   strcpy(name[GROUP_MAXWELL_FREQUENCY_PML_EPSILONANDMU],
2559     "group_maxwell_frequency_pml_epsilonandmu");
2560   type[GROUP_MAXWELL_FREQUENCY_PML_EPSILONANDMU] = DOUBLE_PRECISION;
2561   data_length[GROUP_MAXWELL_FREQUENCY_PML_EPSILONANDMU] = 2;
2562   data_class[GROUP_MAXWELL_FREQUENCY_PML_EPSILONANDMU] = MAXWELL_FREQUENCY;
2563   data_required[GROUP_MAXWELL_FREQUENCY_PML_EPSILONANDMU] = GROUP_TYPE;
2564 
2565   strcpy(name[GROUP_MAXWELL_FREQUENCY_PML_PLANES],
2566     "group_maxwell_frequency_pml_planes");
2567   type[GROUP_MAXWELL_FREQUENCY_PML_PLANES] = INTEGER;
2568   data_length[GROUP_MAXWELL_FREQUENCY_PML_PLANES] = 2;
2569   data_class[GROUP_MAXWELL_FREQUENCY_PML_PLANES] = MAXWELL_FREQUENCY;
2570   data_required[GROUP_MAXWELL_FREQUENCY_PML_PLANES] = GROUP_TYPE;
2571 
2572   strcpy(name[GROUP_MAXWELL_TIME_EPSILON],"group_maxwell_time_epsilon");
2573   type[GROUP_MAXWELL_TIME_EPSILON] = DOUBLE_PRECISION;
2574   data_length[GROUP_MAXWELL_TIME_EPSILON] = 1;
2575   data_class[GROUP_MAXWELL_TIME_EPSILON] = MAXWELL_TIME;
2576   data_required[GROUP_MAXWELL_TIME_EPSILON] = GROUP_TYPE;
2577 
2578   strcpy(name[GROUP_MAXWELL_TIME_EPSILON_ANISOTROPIC],"group_maxwell_time_epsilon_anisotropic");
2579   type[GROUP_MAXWELL_TIME_EPSILON_ANISOTROPIC] = DOUBLE_PRECISION;
2580   data_length[GROUP_MAXWELL_TIME_EPSILON_ANISOTROPIC] = MDIM;
2581   data_class[GROUP_MAXWELL_TIME_EPSILON_ANISOTROPIC] = MAXWELL_TIME;
2582   data_required[GROUP_MAXWELL_TIME_EPSILON_ANISOTROPIC] = GROUP_TYPE;
2583 
2584   strcpy(name[GROUP_MAXWELL_TIME_J],"group_maxwell_time_j");
2585   type[GROUP_MAXWELL_TIME_J] = DOUBLE_PRECISION;
2586   data_length[GROUP_MAXWELL_TIME_J] = MDIM;
2587   data_class[GROUP_MAXWELL_TIME_J] = MAXWELL_TIME;
2588   data_required[GROUP_MAXWELL_TIME_J] = GROUP_TYPE;
2589 
2590   strcpy(name[GROUP_MAXWELL_TIME_MU],"group_maxwell_time_mu");
2591   type[GROUP_MAXWELL_TIME_MU] = DOUBLE_PRECISION;
2592   data_length[GROUP_MAXWELL_TIME_MU] = 1;
2593   data_class[GROUP_MAXWELL_TIME_MU] = MAXWELL_TIME;
2594   data_required[GROUP_MAXWELL_TIME_MU] = GROUP_TYPE;
2595 
2596   strcpy(name[GROUP_MAXWELL_TIME_PENALTY],"group_maxwell_time_penalty");
2597   type[GROUP_MAXWELL_TIME_PENALTY] = DOUBLE_PRECISION;
2598   data_length[GROUP_MAXWELL_TIME_PENALTY] = 1;
2599   data_class[GROUP_MAXWELL_TIME_PENALTY] = MAXWELL_TIME;
2600   data_required[GROUP_MAXWELL_TIME_PENALTY] = GROUP_TYPE;
2601 
2602   strcpy(name[GROUP_SPRING_DIRECTION],"group_spring_direction");
2603   type[GROUP_SPRING_DIRECTION] = DOUBLE_PRECISION;
2604   data_length[GROUP_SPRING_DIRECTION] = ndim;
2605   data_class[GROUP_SPRING_DIRECTION] = SPRING;
2606   data_required[GROUP_SPRING_DIRECTION] = GROUP_TYPE;
2607 
2608   strcpy(name[GROUP_SPRING_STIFFNESS],"group_spring_stiffness");
2609   type[GROUP_SPRING_STIFFNESS] = DOUBLE_PRECISION;
2610   data_length[GROUP_SPRING_STIFFNESS] = 1;
2611   data_class[GROUP_SPRING_STIFFNESS] = SPRING;
2612   data_required[GROUP_SPRING_STIFFNESS] = GROUP_TYPE;
2613 
2614   strcpy(name[GROUP_SPRING_PLASTI],"group_spring_plasti");
2615   type[GROUP_SPRING_PLASTI] = DOUBLE_PRECISION;
2616   data_length[GROUP_SPRING_PLASTI] = 1;
2617   data_class[GROUP_SPRING_PLASTI] = SPRING;
2618   data_required[GROUP_SPRING_PLASTI] = GROUP_TYPE;
2619 
2620   strcpy(name[GROUP_TIME],"group_time");
2621   type[GROUP_TIME] = DOUBLE_PRECISION;
2622   data_length[GROUP_TIME] = 2;
2623   data_class[GROUP_TIME] = GROUP_TIME;
2624   data_required[GROUP_TIME] = GROUP_TYPE;
2625 
2626   strcpy(name[GROUP_TRUSS_AREA],"group_truss_area");
2627   type[GROUP_TRUSS_AREA] = DOUBLE_PRECISION;
2628   data_length[GROUP_TRUSS_AREA] = 1;
2629   data_class[GROUP_TRUSS_AREA] = TRUSS;
2630   data_required[GROUP_TRUSS_AREA] = GROUP_TYPE;
2631 
2632   strcpy(name[GROUP_TRUSS_DENSITY],"group_truss_density");
2633   type[GROUP_TRUSS_DENSITY] = DOUBLE_PRECISION;
2634   data_length[GROUP_TRUSS_DENSITY] = 1;
2635   data_class[GROUP_TRUSS_DENSITY] = TRUSS;
2636   data_required[GROUP_TRUSS_DENSITY] = GROUP_TYPE;
2637 
2638   strcpy(name[GROUP_TRUSS_MEMORY],"group_truss_memory");
2639   type[GROUP_TRUSS_MEMORY] = INTEGER;
2640   data_length[GROUP_TRUSS_MEMORY] = 1;
2641   data_class[GROUP_TRUSS_MEMORY] = TRUSS;
2642   data_required[GROUP_TRUSS_MEMORY] = GROUP_TYPE;
2643 
2644   strcpy(name[GROUP_TRUSS_ROPE],"group_truss_rope");
2645   type[GROUP_TRUSS_ROPE] = INTEGER;
2646   data_length[GROUP_TRUSS_ROPE] = 1;
2647   data_class[GROUP_TRUSS_ROPE] = TRUSS;
2648   data_required[GROUP_TRUSS_ROPE] = GROUP_TYPE;
2649 
2650   strcpy(name[GROUP_TRUSS_PLASTI],"group_truss_plasti");
2651   type[GROUP_TRUSS_PLASTI] = DOUBLE_PRECISION;
2652   data_length[GROUP_TRUSS_PLASTI] = 1;
2653   data_class[GROUP_TRUSS_PLASTI] = TRUSS;
2654   data_required[GROUP_TRUSS_PLASTI] = GROUP_TYPE;
2655 
2656   strcpy(name[GROUP_TRUSS_YOUNG],"group_truss_young");
2657   type[GROUP_TRUSS_YOUNG] = DOUBLE_PRECISION;
2658   data_length[GROUP_TRUSS_YOUNG] = 1;
2659   data_class[GROUP_TRUSS_YOUNG] = TRUSS;
2660   data_required[GROUP_TRUSS_YOUNG] = GROUP_TYPE;
2661 
2662   strcpy(name[GROUP_TYPE],"group_type");
2663   type[GROUP_TYPE] = INTEGER;
2664   data_length[GROUP_TYPE] = MTYPE;
2665   fixed_length[GROUP_TYPE] = 0;
2666   data_required[GROUP_TYPE] = GROUP_TYPE;
2667 
2668   strcpy(name[GROUP_USER_DATA],"group_user_data");
2669   type[GROUP_USER_DATA] = DOUBLE_PRECISION;
2670   data_length[GROUP_USER_DATA] = DATA_ITEM_SIZE;
2671   fixed_length[GROUP_USER_DATA] = 0;
2672   data_required[GROUP_USER_DATA] = GROUP_TYPE;
2673 
2674   strcpy(name[GROUP_USER_UMAT],"group_user_umat");
2675   type[GROUP_USER_UMAT] = INTEGER;
2676   data_length[GROUP_USER_UMAT] = 1;
2677   data_required[GROUP_USER_UMAT] = GROUP_TYPE;
2678 
2679   strcpy(name[GROUP_VOLUME_FACTOR],"group_volume_factor");
2680   type[GROUP_VOLUME_FACTOR] = DOUBLE_PRECISION;
2681   data_length[GROUP_VOLUME_FACTOR] = 1;
2682   version_all[GROUP_VOLUME_FACTOR] = 1;
2683   data_class[GROUP_VOLUME_FACTOR] = VOLUME;
2684   data_required[GROUP_VOLUME_FACTOR] = GROUP_TYPE;
2685 
2686   strcpy(name[GROUP_WAVE_SPEED_OF_SOUND],"group_wave_speed_of_sound");
2687   type[GROUP_WAVE_SPEED_OF_SOUND] = DOUBLE_PRECISION;
2688   data_length[GROUP_WAVE_SPEED_OF_SOUND] = 1;
2689   data_class[GROUP_WAVE_SPEED_OF_SOUND] = WAVE;
2690   data_required[GROUP_WAVE_SPEED_OF_SOUND] = GROUP_TYPE;
2691 
2692   strcpy(name[GROWTH],"growth");
2693 
2694   strcpy(name[HEX8],"hex8");
2695 
2696   strcpy(name[HEX27],"hex27");
2697 
2698   strcpy(name[HEX64],"hex64");
2699 
2700   strcpy(name[H_REFINEMENT],"h_refinement");
2701 
2702   strcpy(name[ICC],"icc");
2703 
2704   strcpy(name[ILU],"ilu");
2705 
2706   strcpy(name[ICONTROL],"icontrol");
2707   type[ICONTROL] = INTEGER;
2708   data_length[ICONTROL] = 1;
2709   no_index[ICONTROL] = 1;
2710   external[ICONTROL] = 0;
2711 
2712   strcpy(name[INITIALIZE],"initialize");
2713 
2714   strcpy(name[INITIALIZATION_VALUES],"initialization_values");
2715   type[INITIALIZATION_VALUES] = INTEGER;
2716   data_length[INITIALIZATION_VALUES] = DATA_ITEM_SIZE;
2717   no_index[INITIALIZATION_VALUES] = 1;
2718   external[INITIALIZATION_VALUES] = 0;
2719   fixed_length[INITIALIZATION_VALUES] = 0;
2720 
2721   strcpy(name[INVERSE],"inverse");
2722 
2723   strcpy(name[INVERSE_HISTORY],"inverse_history");
2724   type[INVERSE_HISTORY] = DOUBLE_PRECISION;
2725   data_length[INVERSE_HISTORY] = 2;
2726   no_index[INVERSE_HISTORY] = 1;
2727   external[INVERSE_HISTORY] = 0;
2728   data_class[INVERSE_HISTORY] = INVERSE;
2729 
2730   strcpy(name[INVERSE_ITERATIONS],"inverse_iterations");
2731   type[INVERSE_ITERATIONS] = INTEGER;
2732   data_length[INVERSE_ITERATIONS] = 1;
2733   no_index[INVERSE_ITERATIONS] = 1;
2734   data_class[INVERSE_ITERATIONS] = INVERSE;
2735 
2736   strcpy(name[INVERSE_ITERATION_NUMBER],"inverse_iteration_number");
2737   type[INVERSE_ITERATION_NUMBER] = INTEGER;
2738   data_length[INVERSE_ITERATION_NUMBER] = 1;
2739   no_index[INVERSE_ITERATION_NUMBER] = 1;
2740   data_class[INVERSE_ITERATION_NUMBER] = INVERSE;
2741 
2742   strcpy(name[INVERSE_PARAMETER],"inverse_parameter");
2743   type[INVERSE_PARAMETER] = INTEGER;
2744   data_length[INVERSE_PARAMETER] = 3;
2745   data_class[INVERSE_PARAMETER] = INVERSE;
2746 
2747   strcpy(name[INVERSE_PARAMETER_LIMITS],"inverse_parameter_limits");
2748   type[INVERSE_PARAMETER_LIMITS] = DOUBLE_PRECISION;
2749   data_length[INVERSE_PARAMETER_LIMITS] = 2;
2750   data_class[INVERSE_PARAMETER_LIMITS] = INVERSE;
2751   data_required[INVERSE_PARAMETER_LIMITS] = INVERSE_PARAMETER;
2752 
2753   strcpy(name[INVERSE_PARAMETER_SENSITIVITY],"inverse_parameter_sensitivity");
2754   type[INVERSE_PARAMETER_SENSITIVITY] = DOUBLE_PRECISION;
2755   data_length[INVERSE_PARAMETER_SENSITIVITY] = 3;
2756   external[INVERSE_PARAMETER_SENSITIVITY] = 0;
2757   data_class[INVERSE_PARAMETER_SENSITIVITY] = INVERSE;
2758   data_required[INVERSE_PARAMETER_SENSITIVITY] = INVERSE_PARAMETER;
2759 
2760   strcpy(name[INVERSE_PARAMETER_STEP],"inverse_parameter_step");
2761   type[INVERSE_PARAMETER_STEP] = DOUBLE_PRECISION;
2762   data_length[INVERSE_PARAMETER_STEP] = 1;
2763   data_class[INVERSE_PARAMETER_STEP] = INVERSE;
2764   data_required[INVERSE_PARAMETER_STEP] = INVERSE_PARAMETER;
2765 
2766   strcpy(name[INVERSE_PARAMETER_VARIATION],"inverse_parameter_variation");
2767   type[INVERSE_PARAMETER_VARIATION] = DOUBLE_PRECISION;
2768   data_length[INVERSE_PARAMETER_VARIATION] = 1;
2769   data_class[INVERSE_PARAMETER_VARIATION] = INVERSE;
2770   data_required[INVERSE_PARAMETER_VARIATION] = INVERSE_PARAMETER;
2771 
2772   strcpy(name[INVERSE_TARGET],"inverse_target");
2773   type[INVERSE_TARGET] = INTEGER;
2774   data_length[INVERSE_TARGET] = 3;
2775   data_class[INVERSE_TARGET] = INVERSE;
2776 
2777   strcpy(name[INVERSE_TARGET_DATA],"inverse_target_data");
2778   type[INVERSE_TARGET_DATA] = DOUBLE_PRECISION;
2779   data_length[INVERSE_TARGET_DATA] = 3;
2780   fixed_length[INVERSE_TARGET_DATA] = 0;
2781   data_class[INVERSE_TARGET_DATA] = INVERSE;
2782   data_required[INVERSE_TARGET_DATA] = INVERSE_TARGET;
2783 
2784   strcpy(name[INVERSE_TARGET_TIMESTEP],"inverse_target_timestep");
2785   type[INVERSE_TARGET_TIMESTEP] = INTEGER;
2786   data_length[INVERSE_TARGET_TIMESTEP] = 1;
2787   data_class[INVERSE_TARGET_TIMESTEP] = INVERSE;
2788   data_required[INVERSE_TARGET_TIMESTEP] = INVERSE_TARGET;
2789 
2790   strcpy(name[JACOBI],"jacobi");
2791 
2792   strcpy(name[LSQR],"lsqr");
2793 
2794   strcpy(name[LOBATTO],"lobatto");
2795 
2796   strcpy(name[LU],"lu");
2797 
2798   strcpy(name[MACRO],"macro");
2799 
2800   strcpy(name[MATERI],"materi");
2801 
2802   strcpy(name[MATERI_DAMAGE],"materi_damage");
2803 
2804   strcpy(name[MATERI_DENSITY],"materi_density");
2805 
2806   strcpy(name[MATERI_DENSITY_MINIMUM],"materi_density_minimum");
2807   type[MATERI_DENSITY_MINIMUM] = DOUBLE_PRECISION;
2808   data_length[MATERI_DENSITY_MINIMUM] = 1;
2809   no_index[MATERI_DENSITY_MINIMUM] = 1;
2810 
2811   strcpy(name[MATERI_DIFFUSION],"materi_diffusion");
2812 
2813   strcpy(name[MATERI_DIFFUSION_MINIMUM],"materi_diffusion_minimum");
2814   type[MATERI_DIFFUSION_MINIMUM] = DOUBLE_PRECISION;
2815   data_length[MATERI_DIFFUSION_MINIMUM] = 1;
2816   no_index[MATERI_DIFFUSION_MINIMUM] = 1;
2817 
2818   strcpy(name[MATERI_DIFFUSION_ADJUST_GEOMETRY],"materi_diffusion_adjust_geometry");
2819   type[MATERI_DIFFUSION_ADJUST_GEOMETRY] = INTEGER;
2820   data_length[MATERI_DIFFUSION_ADJUST_GEOMETRY] = 4;
2821   data_class[MATERI_DIFFUSION_ADJUST_GEOMETRY] = MATERI_DIFFUSION;
2822 
2823   strcpy(name[MATERI_DIFFUSION_CORRECT],"materi_diffusion_correct");
2824   type[MATERI_DIFFUSION_CORRECT] = INTEGER;
2825   data_length[MATERI_DIFFUSION_CORRECT] = 1;
2826   data_class[MATERI_DIFFUSION_CORRECT] = MATERI_DIFFUSION;
2827   no_index[MATERI_DIFFUSION_CORRECT] = 1;
2828 
2829   strcpy(name[MATERI_DIFFUSION_FILL_GEOMETRY],"materi_diffusion_fill_geometry");
2830   type[MATERI_DIFFUSION_FILL_GEOMETRY] = INTEGER;
2831   data_length[MATERI_DIFFUSION_FILL_GEOMETRY] = 2;
2832   data_class[MATERI_DIFFUSION_FILL_GEOMETRY] = MATERI_DIFFUSION;
2833 
2834   strcpy(name[MATERI_DIFFUSION_FILL_EPSVELOCITY],"materi_diffusion_fill_epsvelocity");
2835   type[MATERI_DIFFUSION_FILL_EPSVELOCITY] = DOUBLE_PRECISION;
2836   data_length[MATERI_DIFFUSION_FILL_EPSVELOCITY] = 1;
2837   data_class[MATERI_DIFFUSION_FILL_EPSVELOCITY] = MATERI_DIFFUSION;
2838   no_index[MATERI_DIFFUSION_FILL_EPSVELOCITY] = 1;
2839 
2840   strcpy(name[MATERI_DIFFUSION_SMOOTH],"materi_diffusion_smooth");
2841   type[MATERI_DIFFUSION_SMOOTH] = INTEGER;
2842   data_length[MATERI_DIFFUSION_SMOOTH] = 1;
2843   data_class[MATERI_DIFFUSION_SMOOTH] = MATERI_DIFFUSION;
2844   no_index[MATERI_DIFFUSION_SMOOTH] = 1;
2845 
2846   strcpy(name[MATERI_DIFFUSION_TEMPERATURE],"materi_diffusion_temperature");
2847   type[MATERI_DIFFUSION_TEMPERATURE] = DOUBLE_PRECISION;
2848   data_length[MATERI_DIFFUSION_TEMPERATURE] = 1;
2849   data_class[MATERI_DIFFUSION_TEMPERATURE] = MATERI_DIFFUSION;
2850   no_index[MATERI_DIFFUSION_TEMPERATURE] = 1;
2851 
2852   strcpy(name[MATERI_DISPLACEMENT],"materi_displacement");
2853 
2854   strcpy(name[MATERI_HISTORY_VARIABLES],"materi_history_variables");
2855 
2856   strcpy(name[MATERI_MAXWELL_STRESS],"materi_maxwell_stress");
2857 
2858   strcpy(name[MATERI_PLASTI_F],"materi_plasti_f");
2859 
2860   strcpy(name[MATERI_PLASTI_F_NONLOCAL],"materi_plasti_f_nonlocal");
2861 
2862   strcpy(name[MATERI_PLASTI_INCREMENTAL_SUBSTEPS],"materi_plasti_incremental_substeps");
2863 
2864   strcpy(name[MATERI_PLASTI_KAPPA],"materi_plasti_kappa");
2865 
2866   strcpy(name[MATERI_PLASTI_RHO],"materi_plasti_rho");
2867 
2868   strcpy(name[MATERI_PLASTI_SOFTVAR_LOCAL],"materi_plasti_softvar_local");
2869 
2870   strcpy(name[MATERI_PLASTI_SOFTVAR_NONLOCAL],"materi_plasti_softvar_nonlocal");
2871 
2872   strcpy(name[MATERI_ROTATION],"materi_rotation");
2873 
2874   strcpy(name[MATERI_STRAINENERGY],"materi_strainenergy");
2875 
2876   strcpy(name[MATERI_STRAIN_ELASTI],"materi_strain_elasti");
2877 
2878   strcpy(name[MATERI_STRAIN_INTERGRANULAR],"materi_strain_intergranular");
2879 
2880   strcpy(name[MATERI_STRAIN_PLASTI],"materi_strain_plasti");
2881 
2882   strcpy(name[MATERI_STRAIN_TOTAL],"materi_strain_total" );
2883 
2884   strcpy(name[MATERI_STRESS],"materi_stress");
2885 
2886   strcpy(name[MATERI_VELOCITY],"materi_velocity");
2887 
2888   strcpy(name[MATERI_VELOCITY_INTEGRATED],"materi_velocity_integrated");
2889 
2890   strcpy(name[MATERI_VOID_FRACTION],"materi_void_fraction");
2891 
2892   strcpy(name[MATERI_WORK],"materi_work");
2893 
2894   strcpy(name[MATRIX],"matrix");
2895 
2896   strcpy(name[MATRIX_ITERATIVE_BICG],"matrix_iterative_bicg");
2897 
2898   strcpy(name[MATRIX_ITERATIVE_PETSC],"matrix_iterative_petsc");
2899 
2900   strcpy(name[MATRIX_SUPERLU],"matrix_superlu");
2901 
2902   strcpy(name[MATRIX_SUPERLU_DIST],"matrix_superlu_dist");
2903 
2904   strcpy(name[MATRIX_SUPERLU_MT],"matrix_superlu_mt");
2905 
2906   strcpy(name[MATRIX_LAPACK],"matrix_lapack");
2907 
2908   strcpy(name[MAXFRE],"maxfre");
2909 
2910   strcpy(name[MAXIMAL],"maximal");
2911 
2912   strcpy(name[MAXTIM],"maxtim");
2913 
2914   strcpy(name[MAXWELL],"maxwell");
2915 
2916   strcpy(name[MAXWELL_ECOMPLEX],"maxwell_ecomplex");
2917 
2918   strcpy(name[MAXWELL_E],"maxwell_e");
2919 
2920   strcpy(name[MAXWELL_EI],"maxwell_ei");
2921 
2922   strcpy(name[MAXWELL_ER],"maxwell_er");
2923 
2924   strcpy(name[MAXWELL_FE],"maxwell_fe");
2925 
2926   strcpy(name[MAXWELL_FREQUENCY],"maxwell_frequency");
2927 
2928   strcpy(name[MAXWELL_FREQUENCY_EXCITATION],"maxwell_frequency_excitation");
2929   type[MAXWELL_FREQUENCY_EXCITATION] = DOUBLE_PRECISION;
2930   data_length[MAXWELL_FREQUENCY_EXCITATION] = 1;
2931   data_class[MAXWELL_FREQUENCY_EXCITATION] = MAXWELL_FREQUENCY;
2932   no_index[MAXWELL_FREQUENCY_EXCITATION] = 1;
2933 
2934   strcpy(name[MAXWELL_SCATTER_ENERGYCONSERVATION],"maxwell_scatter_energyconservation");
2935   type[MAXWELL_SCATTER_ENERGYCONSERVATION] = INTEGER;
2936   data_length[MAXWELL_SCATTER_ENERGYCONSERVATION] = 1;
2937   data_class[MAXWELL_SCATTER_ENERGYCONSERVATION] = MAXWELL;
2938   no_index[MAXWELL_SCATTER_ENERGYCONSERVATION] = 1;
2939 
2940   strcpy(name[MAXWELL_SCATTER_MATRIX_AMPLITUDE],"maxwell_scatter_matrix_amplitude");
2941   type[MAXWELL_SCATTER_MATRIX_AMPLITUDE] = DOUBLE_PRECISION;
2942   data_length[MAXWELL_SCATTER_MATRIX_AMPLITUDE] = DATA_ITEM_SIZE;
2943   data_class[MAXWELL_SCATTER_MATRIX_AMPLITUDE] = MAXWELL;
2944   fixed_length[MAXWELL_SCATTER_MATRIX_AMPLITUDE] = 0;
2945   no_index[MAXWELL_SCATTER_MATRIX_AMPLITUDE] = 1;
2946 
2947   strcpy(name[MAXWELL_SCATTER_MATRIX_AMPLITUDEDB],"maxwell_scatter_matrix_amplitudedb");
2948   type[MAXWELL_SCATTER_MATRIX_AMPLITUDEDB] = DOUBLE_PRECISION;
2949   data_length[MAXWELL_SCATTER_MATRIX_AMPLITUDEDB] = DATA_ITEM_SIZE;
2950   data_class[MAXWELL_SCATTER_MATRIX_AMPLITUDEDB] = MAXWELL;
2951   fixed_length[MAXWELL_SCATTER_MATRIX_AMPLITUDEDB] = 0;
2952   no_index[MAXWELL_SCATTER_MATRIX_AMPLITUDEDB] = 1;
2953 
2954   strcpy(name[MAXWELL_SCATTER_MATRIX_IMAGINARY],"maxwell_scatter_matrix_imaginary");
2955   type[MAXWELL_SCATTER_MATRIX_IMAGINARY] = DOUBLE_PRECISION;
2956   data_length[MAXWELL_SCATTER_MATRIX_IMAGINARY] = DATA_ITEM_SIZE;
2957   data_class[MAXWELL_SCATTER_MATRIX_IMAGINARY] = MAXWELL;
2958   fixed_length[MAXWELL_SCATTER_MATRIX_IMAGINARY] = 0;
2959   no_index[MAXWELL_SCATTER_MATRIX_IMAGINARY] = 1;
2960 
2961   strcpy(name[MAXWELL_SCATTER_MATRIX_PHASE],"maxwell_scatter_matrix_phase");
2962   type[MAXWELL_SCATTER_MATRIX_PHASE] = DOUBLE_PRECISION;
2963   data_length[MAXWELL_SCATTER_MATRIX_PHASE] = DATA_ITEM_SIZE;
2964   data_class[MAXWELL_SCATTER_MATRIX_PHASE] = MAXWELL;
2965   fixed_length[MAXWELL_SCATTER_MATRIX_PHASE] = 0;
2966   no_index[MAXWELL_SCATTER_MATRIX_PHASE] = 1;
2967 
2968   strcpy(name[MAXWELL_SCATTER_MATRIX_REAL],"maxwell_scatter_matrix_real");
2969   type[MAXWELL_SCATTER_MATRIX_REAL] = DOUBLE_PRECISION;
2970   data_length[MAXWELL_SCATTER_MATRIX_REAL] = DATA_ITEM_SIZE;
2971   data_class[MAXWELL_SCATTER_MATRIX_REAL] = MAXWELL;
2972   fixed_length[MAXWELL_SCATTER_MATRIX_REAL] = 0;
2973   no_index[MAXWELL_SCATTER_MATRIX_REAL] = 1;
2974 
2975   strcpy(name[MAXWELL_SCATTER_PORT_INPUT],"maxwell_scatter_port_input");
2976   type[MAXWELL_SCATTER_PORT_INPUT] = INTEGER;
2977   data_length[MAXWELL_SCATTER_PORT_INPUT] = 2;
2978   data_class[MAXWELL_SCATTER_PORT_INPUT] = MAXWELL;
2979   no_index[MAXWELL_SCATTER_PORT_INPUT] = 1;
2980 
2981   strcpy(name[MAXWELL_SCATTER_PORT_OUTPUT],"maxwell_scatter_port_output");
2982   type[MAXWELL_SCATTER_PORT_OUTPUT] = INTEGER;
2983   data_length[MAXWELL_SCATTER_PORT_OUTPUT] = DATA_ITEM_SIZE;
2984   data_class[MAXWELL_SCATTER_PORT_OUTPUT] = MAXWELL;
2985   no_index[MAXWELL_SCATTER_PORT_OUTPUT] = 1;
2986   fixed_length[MAXWELL_SCATTER_PORT_OUTPUT] = 0;
2987 
2988   strcpy(name[MAXWELL_SCATTER_PARAMETERS],"maxwell_scatter_parameters");
2989   type[MAXWELL_SCATTER_PARAMETERS] = DOUBLE_PRECISION;
2990   data_length[MAXWELL_SCATTER_PARAMETERS] = 2;
2991   data_class[MAXWELL_SCATTER_PARAMETERS] = MAXWELL;
2992   no_index[MAXWELL_SCATTER_PARAMETERS] = 1;
2993 
2994   strcpy(name[MAXWELL_TIME],"maxwell_time");
2995 
2996   strcpy(name[MESH],"mesh");
2997 
2998   strcpy(name[METHOD1],"method1");
2999 
3000   strcpy(name[METHOD2],"method2");
3001 
3002   strcpy(name[MINIMAL],"minimal");
3003 
3004   strcpy(name[MINUS_ONE],"minus_one" );
3005 
3006   strcpy(name[MOMENT],"moment");
3007 
3008   strcpy(name[NEGATIVE],"negative");
3009 
3010   strcpy(name[NO],"no");
3011 
3012   strcpy(name[NODE],"node");
3013   type[NODE] = DOUBLE_PRECISION;
3014   data_length[NODE] = ndim;
3015   version_all[NODE] = 1;
3016   data_class[NODE] = NODE;
3017 
3018   strcpy(name[NODE_ADJUST],"node_adjust");
3019   type[NODE_ADJUST] = INTEGER;
3020   data_length[NODE_ADJUST] = 1;
3021   version_all[NODE_ADJUST] = 1;
3022   data_class[NODE_ADJUST] = NODE;
3023   external[NODE_ADJUST] = 0;
3024   data_required[NODE_ADJUST] = NODE;
3025 
3026   strcpy(name[NODE_BOUNDARY],"node_boundary");
3027   type[NODE_BOUNDARY] = INTEGER;
3028   data_length[NODE_BOUNDARY] = 1;
3029   version_all[NODE_BOUNDARY] = 1;
3030   data_class[NODE_BOUNDARY] = NODE;
3031   data_required[NODE_BOUNDARY] = NODE;
3032 
3033   strcpy(name[NODE_BOUNDED],"node_bounded");
3034   type[NODE_BOUNDED] = INTEGER;
3035   data_length[NODE_BOUNDED] = npuknwn;
3036   external[NODE_BOUNDED] = 0;
3037   data_class[NODE_BOUNDED] = NODE;
3038   data_required[NODE_BOUNDED] = NODE;
3039 
3040   strcpy(name[NODE_DAMPING],"node_damping");
3041   type[NODE_DAMPING] = DOUBLE_PRECISION;
3042   data_length[NODE_DAMPING] = ndim;
3043   version_all[NODE_DAMPING] = 1;
3044   data_class[NODE_DAMPING] = NODE;
3045   data_required[NODE_DAMPING] = NODE;
3046 
3047   strcpy(name[NODE_DOF],"node_dof");
3048   type[NODE_DOF] = DOUBLE_PRECISION;
3049   data_length[NODE_DOF] = nuknwn;
3050   version_all[NODE_DOF] = 1;
3051   data_class[NODE_DOF] = NODE;
3052   data_required[NODE_DOF] = NODE;
3053 
3054   strcpy(name[NODE_DOF_CALCUL],"node_dof_calcul");
3055   type[NODE_DOF_CALCUL] = DOUBLE_PRECISION;
3056   data_length[NODE_DOF_CALCUL] = MCALCUL;
3057   fixed_length[NODE_DOF_CALCUL] = 0;
3058   version_all[NODE_DOF_CALCUL] = 1;
3059   data_class[NODE_DOF_CALCUL] = NODE;
3060   data_required[NODE_DOF_CALCUL] = NODE;
3061 
3062   strcpy(name[NODE_DOF_START_REFINED],"node_dof_start_refined");
3063   type[NODE_DOF_START_REFINED] = DOUBLE_PRECISION;
3064   data_length[NODE_DOF_START_REFINED] = nuknwn;
3065   version_all[NODE_DOF_START_REFINED] = 1;
3066   data_class[NODE_DOF_START_REFINED] = NODE;
3067   data_required[NODE_DOF_START_REFINED] = NODE;
3068 
3069   strcpy(name[NODE_DOF_TMP],"node_dof_tmp");
3070   type[NODE_DOF_TMP] = DOUBLE_PRECISION;
3071   data_length[NODE_DOF_TMP] = nuknwn;
3072   external[NODE_DOF_TMP] = 0;
3073   data_class[NODE_DOF_TMP] = NODE;
3074   data_required[NODE_DOF_TMP] = NODE;
3075 
3076   strcpy(name[NODE_EIGEN],"node_eigen");
3077   type[NODE_EIGEN] = DOUBLE_PRECISION;
3078   data_length[NODE_EIGEN] = DATA_ITEM_SIZE;
3079   fixed_length[NODE_EIGEN] = 0;
3080   version_all[NODE_EIGEN] = 1;
3081   data_class[NODE_EIGEN] = NODE;
3082   data_required[NODE_EIGEN] = NODE;
3083 
3084   strcpy(name[NODE_ELEMENT],"node_element");
3085   type[NODE_ELEMENT] = INTEGER;
3086   data_length[NODE_ELEMENT] = 0; // set run-time
3087   external[NODE_ELEMENT] = 0;
3088   fixed_length[NODE_ELEMENT] = 0;
3089   version_all[NODE_ELEMENT] = 1;
3090   data_class[NODE_ELEMENT] = NODE;
3091   data_required[NODE_ELEMENT] = NODE;
3092 
3093   strcpy(name[NODE_LHSIDE],"node_lhside");
3094   type[NODE_LHSIDE] = DOUBLE_PRECISION;
3095   data_length[NODE_LHSIDE] = npuknwn;
3096   external[NODE_LHSIDE] = 0;
3097   data_class[NODE_LHSIDE] = NODE;
3098   data_required[NODE_LHSIDE] = NODE;
3099 
3100   strcpy(name[NODE_MACRO_GENERATE],"node_macro_generate");
3101   type[NODE_MACRO_GENERATE] = INTEGER;
3102   data_length[NODE_MACRO_GENERATE] = 1;
3103   version_all[NODE_MACRO_GENERATE] = 1;
3104   data_class[NODE_MACRO_GENERATE] = NODE;
3105   data_required[NODE_MACRO_GENERATE] = NODE;
3106   external[NODE_MACRO_GENERATE] = 0;
3107 
3108   strcpy(name[NODE_MASS],"node_mass");
3109   type[NODE_MASS] = DOUBLE_PRECISION;
3110   data_length[NODE_MASS] = 1;
3111   version_all[NODE_MASS] = 1;
3112   data_class[NODE_MASS] = NODE;
3113   data_required[NODE_MASS] = NODE;
3114 
3115   strcpy(name[NODE_REMESH_ALLOWED],"node_remesh_allowed");
3116   strcpy(name[NODE_NEL],"node_nel");
3117   type[NODE_NEL] = INTEGER;
3118   data_length[NODE_NEL] = 1;
3119   external[NODE_NEL] = 0;
3120   version_all[NODE_NEL] = 1;
3121   data_class[NODE_NEL] = NODE;
3122   data_required[NODE_NEL] = NODE;
3123 
3124   strcpy(name[NODE_NODE],"node_node");
3125   type[NODE_NODE] = INTEGER;
3126   data_length[NODE_NODE] = 0; // set run-time
3127   external[NODE_NODE] = 0;
3128   fixed_length[NODE_NODE] = 0;
3129   version_all[NODE_NODE] = 1;
3130   data_class[NODE_NODE] = NODE;
3131   data_required[NODE_NODE] = NODE;
3132 
3133   strcpy(name[NODE_NONLOCAL],"node_nonlocal");
3134   type[NODE_NONLOCAL] = INTEGER;
3135   data_length[NODE_NONLOCAL] = NONLOCAL_ITEM_SIZE;
3136   external[NODE_NONLOCAL] = 0;
3137   version_all[NODE_NONLOCAL] = 1;
3138   fixed_length[NODE_NONLOCAL] = 0;
3139   data_class[NODE_NONLOCAL] = NODE;
3140   data_required[NODE_NONLOCAL] = NODE;
3141 
3142   strcpy(name[NODE_NONLOCAL_WEIGHT],"node_nonlocal_weight");
3143   type[NODE_NONLOCAL_WEIGHT] = DOUBLE_PRECISION;
3144   data_length[NODE_NONLOCAL_WEIGHT] = NONLOCAL_ITEM_SIZE;
3145   external[NODE_NONLOCAL_WEIGHT] = 0;
3146   version_all[NODE_NONLOCAL_WEIGHT] = 1;
3147   fixed_length[NODE_NONLOCAL_WEIGHT] = 0;
3148   data_class[NODE_NONLOCAL_WEIGHT] = NODE;
3149   data_required[NODE_NONLOCAL_WEIGHT] = NODE;
3150 
3151   strcpy(name[NODE_PHREATICLEVEL],"node_phreaticlevel");
3152   type[NODE_PHREATICLEVEL] = INTEGER;
3153   data_length[NODE_PHREATICLEVEL] = 1;
3154   version_all[NODE_PHREATICLEVEL] = 1;
3155   data_class[NODE_PHREATICLEVEL] = NODE;
3156   data_required[NODE_PHREATICLEVEL] = NODE;
3157   external[NODE_PHREATICLEVEL] = 0;
3158 
3159   strcpy(name[NODE_PRINT],"node_node_print");
3160   type[NODE_PRINT] = DOUBLE_PRECISION;
3161   data_length[NODE_PRINT] = ndim;
3162   version_all[NODE_PRINT] = 1;
3163   data_class[NODE_PRINT] = NODE;
3164   external[NODE_PRINT] = 0;
3165 
3166   strcpy(name[NODE_REMESH_ALLOWED],"node_remesh_allowed");
3167   type[NODE_REMESH_ALLOWED] = INTEGER;
3168   data_length[NODE_REMESH_ALLOWED] = ndim;
3169   version_all[NODE_REMESH_ALLOWED] = 1;
3170   external[NODE_REMESH_ALLOWED] = 0;
3171   data_class[NODE_REMESH_ALLOWED] = NODE;
3172   data_required[NODE_REMESH_ALLOWED] = NODE;
3173 
3174   strcpy(name[NODE_REMESH_VELOCITY],"node_remesh_velocity");
3175   type[NODE_REMESH_VELOCITY] = DOUBLE_PRECISION;
3176   data_length[NODE_REMESH_VELOCITY] = ndim;
3177   version_all[NODE_REMESH_VELOCITY] = 1;
3178   external[NODE_REMESH_VELOCITY] = 0;
3179   data_class[NODE_REMESH_VELOCITY] = NODE;
3180   data_required[NODE_REMESH_VELOCITY] = NODE;
3181 
3182   strcpy(name[NODE_RHSIDE],"node_rhside");
3183   type[NODE_RHSIDE] = DOUBLE_PRECISION;
3184   data_length[NODE_RHSIDE] = npuknwn;
3185   data_class[NODE_RHSIDE] = NODE;
3186   data_required[NODE_RHSIDE] = NODE;
3187 
3188   strcpy(name[NODE_RHSIDE_PRINT],"node_rhside_print");
3189   type[NODE_RHSIDE_PRINT] = DOUBLE_PRECISION;
3190   data_length[NODE_RHSIDE_PRINT] = npuknwn;
3191   version_all[NODE_RHSIDE_PRINT] = 1;
3192   external[NODE_RHSIDE_PRINT] = 0;
3193   data_required[NODE_RHSIDE_PRINT] = NODE;
3194 
3195   strcpy(name[NODE_START_REFINED],"node_start_refined");
3196   type[NODE_START_REFINED] = DOUBLE_PRECISION;
3197   data_length[NODE_START_REFINED] = ndim;
3198   version_all[NODE_START_REFINED] = 1;
3199   data_class[NODE_START_REFINED] = NODE;
3200   data_required[NODE_START_REFINED] = NODE;
3201 
3202   strcpy(name[NODE_SET],"node_set");
3203   type[NODE_SET] = INTEGER;
3204   data_length[NODE_SET] = 1;
3205   version_all[NODE_SET] = 1;
3206   data_class[NODE_SET] = NODE;
3207 
3208   strcpy(name[NODE_STIFFNESS],"node_stiffness");
3209   type[NODE_STIFFNESS] = DOUBLE_PRECISION;
3210   data_length[NODE_STIFFNESS] = ndim;
3211   version_all[NODE_STIFFNESS] = 1;
3212   data_class[NODE_STIFFNESS] = NODE;
3213   data_required[NODE_STIFFNESS] = NODE;
3214 
3215   strcpy(name[NONE],"none" );
3216 
3217   strcpy(name[NONLOCAL_ELEMENT_INFO],"nonlocal_element_info");
3218   type[NONLOCAL_ELEMENT_INFO] = DOUBLE_PRECISION;
3219   data_length[NONLOCAL_ELEMENT_INFO] = 1+npointmax*ndim+npointmax+2;
3220   version_all[NONLOCAL_ELEMENT_INFO] = 0;
3221   external[NONLOCAL_ELEMENT_INFO] = 0;
3222   data_class[NONLOCAL_ELEMENT_INFO] = ELEMENT;
3223   data_required[NONLOCAL_ELEMENT_INFO] = ELEMENT;
3224 
3225   strcpy(name[NORMAL],"normal");
3226 
3227   strcpy(name[NOTHING],"nothing");
3228 
3229   strcpy(name[NUMBER_ITERATIONS],"number_iterations");
3230   type[NUMBER_ITERATIONS] = INTEGER;
3231   version_all[NUMBER_ITERATIONS] = 1;
3232   data_length[NUMBER_ITERATIONS] = 1;
3233   no_index[NUMBER_ITERATIONS] = 1;
3234   external[NUMBER_ITERATIONS] = 0;
3235   data_class[NUMBER_ITERATIONS] = NUMBER_ITERATIONS;
3236 
3237   strcpy(name[OPTIONS_CONVECTION],"options_convection");
3238   type[OPTIONS_CONVECTION] = INTEGER;
3239   data_length[OPTIONS_CONVECTION] = 1;
3240   no_index[OPTIONS_CONVECTION] = 1;
3241 
3242   strcpy(name[OPTIONS_ELEMENT_DOF],"options_element_dof");
3243   type[OPTIONS_ELEMENT_DOF] = INTEGER;
3244   data_length[OPTIONS_ELEMENT_DOF] = 1;
3245   no_index[OPTIONS_ELEMENT_DOF] = 1;
3246 
3247   strcpy(name[OPTIONS_ELEMENTLOOP],"options_elementloop");
3248   type[OPTIONS_ELEMENTLOOP] = INTEGER;
3249   data_length[OPTIONS_ELEMENTLOOP] = 1;
3250   no_index[OPTIONS_ELEMENTLOOP] = 1;
3251 
3252   strcpy(name[OPTIONS_INERTIA],"options_inertia");
3253   type[OPTIONS_INERTIA] = INTEGER;
3254   data_length[OPTIONS_INERTIA] = 1;
3255   no_index[OPTIONS_INERTIA] = 1;
3256 
3257   strcpy(name[OPTIONS_MATRIX_GROUP],"options_matrix_group");
3258   type[OPTIONS_MATRIX_GROUP] = INTEGER;
3259   data_length[OPTIONS_MATRIX_GROUP] = 1;
3260   no_index[OPTIONS_MATRIX_GROUP] = 1;
3261   external[OPTIONS_MATRIX_GROUP] = 0;
3262 
3263   strcpy(name[OPTIONS_MATRIX_LENGTH],"options_matrix_length");
3264   type[OPTIONS_MATRIX_LENGTH] = INTEGER;
3265   data_length[OPTIONS_MATRIX_LENGTH] = 1;
3266   no_index[OPTIONS_MATRIX_LENGTH] = 1;
3267 
3268   strcpy(name[OPTIONS_MESH],"options_mesh");
3269   type[OPTIONS_MESH] = INTEGER;
3270   data_length[OPTIONS_MESH] = ndim;
3271   no_index[OPTIONS_MESH] = 1;
3272 
3273   strcpy(name[OPTIONS_NONLOCAL],"options_nonlocal");
3274   type[OPTIONS_NONLOCAL] = DOUBLE_PRECISION;
3275   data_length[OPTIONS_NONLOCAL] = 1;
3276   no_index[OPTIONS_NONLOCAL] = 1;
3277 
3278   strcpy(name[OPTIONS_NONLOCAL_SOFTVAR],"options_nonlocal_softvar");
3279   type[OPTIONS_NONLOCAL_SOFTVAR] = DOUBLE_PRECISION;
3280   data_length[OPTIONS_NONLOCAL_SOFTVAR] = 1;
3281   no_index[OPTIONS_NONLOCAL_SOFTVAR] = 1;
3282 
3283   strcpy(name[OPTIONS_PROCESSORS],"options_processors");
3284   type[OPTIONS_PROCESSORS] = INTEGER;
3285   data_length[OPTIONS_PROCESSORS] = 1;
3286   no_index[OPTIONS_PROCESSORS] = 1;
3287 
3288   strcpy(name[OPTIONS_RELAXATION],"options_relaxation");
3289   type[OPTIONS_RELAXATION] = DOUBLE_PRECISION;
3290   data_length[OPTIONS_RELAXATION] = nprinc;
3291   no_index[OPTIONS_RELAXATION] = 1;
3292 
3293   strcpy(name[OPTIONS_RESIDUEFACTOR],"options_residuefactor");
3294   type[OPTIONS_RESIDUEFACTOR] = DOUBLE_PRECISION;
3295   data_length[OPTIONS_RESIDUEFACTOR] = nprinc;
3296   no_index[OPTIONS_RESIDUEFACTOR] = 1;
3297 
3298   strcpy(name[OPTIONS_SKIP_GRAVITY],"options_skip_gravity");
3299   type[OPTIONS_SKIP_GRAVITY] = INTEGER;
3300   data_length[OPTIONS_SKIP_GRAVITY] = 1;
3301   no_index[OPTIONS_SKIP_GRAVITY] = 1;
3302 
3303   strcpy(name[OPTIONS_SKIP_GROUNDFLOW_NONLINEAR],"options_skip_groundflow_nonlinear");
3304   type[OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = INTEGER;
3305   data_length[OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = 1;
3306   no_index[OPTIONS_SKIP_GROUNDFLOW_NONLINEAR] = 1;
3307 
3308   strcpy(name[OPTIONS_SKIP_PLASTICITY],"options_skip_plasticity");
3309   type[OPTIONS_SKIP_PLASTICITY] = INTEGER;
3310   data_length[OPTIONS_SKIP_PLASTICITY] = 1;
3311   no_index[OPTIONS_SKIP_PLASTICITY] = 1;
3312 
3313   strcpy(name[OPTIONS_SOLVER],"options_solver");
3314   type[OPTIONS_SOLVER] = INTEGER;
3315   data_length[OPTIONS_SOLVER] = 1;
3316   no_index[OPTIONS_SOLVER] = 1;
3317 
3318   strcpy(name[OPTIONS_SOLVER_BICG_ERROR],"options_solver_bicg_error");
3319   type[OPTIONS_SOLVER_BICG_ERROR] = DOUBLE_PRECISION;
3320   data_length[OPTIONS_SOLVER_BICG_ERROR] = 1;
3321   no_index[OPTIONS_SOLVER_BICG_ERROR] = 1;
3322 
3323   strcpy(name[OPTIONS_SOLVER_BICG_ERROR_MINIMUM],"options_solver_bicg_error_minimum");
3324   type[OPTIONS_SOLVER_BICG_ERROR_MINIMUM] = DOUBLE_PRECISION;
3325   data_length[OPTIONS_SOLVER_BICG_ERROR_MINIMUM] = 1;
3326   no_index[OPTIONS_SOLVER_BICG_ERROR_MINIMUM] = 1;
3327 
3328   strcpy(name[OPTIONS_STABILIZATION],"options_stabilization");
3329   type[OPTIONS_STABILIZATION] = INTEGER;
3330   data_length[OPTIONS_STABILIZATION] = 1;
3331   no_index[OPTIONS_STABILIZATION] = 1;
3332 
3333   strcpy(name[PHIMOB],"phimob" );
3334 
3335   strcpy(name[POINT_MATERI_DIFFUSION],"point_materi_diffusion");
3336   type[POINT_MATERI_DIFFUSION] = DOUBLE_PRECISION;
3337   data_length[POINT_MATERI_DIFFUSION] = ndim;
3338   version_all[POINT_MATERI_DIFFUSION] = 1;
3339   external[POINT_MATERI_DIFFUSION] = 0;
3340 
3341   strcpy(name[POINT_MATERI_DIFFUSION_PREVIOUS],"point_materi_diffusion_previous");
3342   type[POINT_MATERI_DIFFUSION_PREVIOUS] = DOUBLE_PRECISION;
3343   data_length[POINT_MATERI_DIFFUSION_PREVIOUS] = ndim;
3344   version_all[POINT_MATERI_DIFFUSION_PREVIOUS] = 1;
3345   external[POINT_MATERI_DIFFUSION_PREVIOUS] = 0;
3346 
3347   strcpy(name[POSITIVE],"positive");
3348 
3349   strcpy(name[POST],"post");
3350 
3351   strcpy(name[POST_CALCUL],"post_calcul");
3352   type[POST_CALCUL] = INTEGER;
3353   data_length[POST_CALCUL] = DATA_ITEM_SIZE;
3354   no_index[POST_CALCUL] = 1;
3355   fixed_length[POST_CALCUL] = 0;
3356   data_class[POST_CALCUL] = POST;
3357 
3358   strcpy(name[POST_CALCUL_SCAL_VEC_MAT],"post_calcul_scal_vec_mat");
3359   type[POST_CALCUL_SCAL_VEC_MAT] = INTEGER;
3360   data_length[POST_CALCUL_SCAL_VEC_MAT] = DATA_ITEM_SIZE;
3361   fixed_length[POST_CALCUL_SCAL_VEC_MAT] = 0;
3362   no_index[POST_CALCUL_SCAL_VEC_MAT] = 1;
3363   external[POST_CALCUL_SCAL_VEC_MAT] = 0;
3364   data_class[POST_CALCUL_SCAL_VEC_MAT] = POST;
3365 
3366   strcpy(name[POST_CALCUL_UNKNOWN_OPERAT],"post_calcul_unknown_operat");
3367   type[POST_CALCUL_UNKNOWN_OPERAT] = INTEGER;
3368   data_length[POST_CALCUL_UNKNOWN_OPERAT] = DATA_ITEM_SIZE;
3369   fixed_length[POST_CALCUL_UNKNOWN_OPERAT] = 0;
3370   no_index[POST_CALCUL_UNKNOWN_OPERAT] = 1;
3371   external[POST_CALCUL_UNKNOWN_OPERAT] = 0;
3372   data_class[POST_CALCUL_UNKNOWN_OPERAT] = POST;
3373 
3374   strcpy(name[POST_ERROR_ITEM],"post_error_item");
3375   type[POST_ERROR_ITEM] = INTEGER;
3376   data_length[POST_ERROR_ITEM] = 3;
3377   data_class[POST_ERROR_ITEM] = POST;
3378 
3379   strcpy(name[POST_ERROR_MESH1],"post_error_mesh1");
3380   type[POST_ERROR_MESH1] = DOUBLE_PRECISION;
3381   data_length[POST_ERROR_MESH1] = 1;
3382   external[POST_ERROR_MESH1] = 0;
3383   data_class[POST_ERROR_MESH1] = POST;
3384 
3385   strcpy(name[POST_ERROR_MESH2],"post_error_mesh2");
3386   type[POST_ERROR_MESH2] = DOUBLE_PRECISION;
3387   data_length[POST_ERROR_MESH2] = 1;
3388   external[POST_ERROR_MESH2] = 0;
3389   data_class[POST_ERROR_MESH2] = POST;
3390 
3391   strcpy(name[POST_ERROR_RESULT],"post_error_result");
3392   type[POST_ERROR_RESULT] = DOUBLE_PRECISION;
3393   data_length[POST_ERROR_RESULT] = 1;
3394   data_class[POST_ERROR_RESULT] = POST;
3395 
3396   strcpy(name[POST_GLOBAL],"post_global");
3397   type[POST_GLOBAL] = INTEGER;
3398   data_length[POST_GLOBAL] = DATA_ITEM_SIZE;
3399   data_class[POST_GLOBAL] = POST;
3400   fixed_length[POST_GLOBAL] = 0;
3401   no_index[POST_GLOBAL] = 1;
3402 
3403   strcpy(name[POST_INTEGRATE],"post_integrate");
3404   type[POST_INTEGRATE] = INTEGER;
3405   data_length[POST_INTEGRATE] = 3;
3406   data_class[POST_INTEGRATE] = POST;
3407 
3408   strcpy(name[POST_INTEGRATE_RESULT],"post_integrate_result");
3409   type[POST_INTEGRATE_RESULT] = DOUBLE_PRECISION;
3410   data_length[POST_INTEGRATE_RESULT] = 1;
3411   data_class[POST_INTEGRATE_RESULT] = POST;
3412 
3413   strcpy(name[POST_LINE],"post_line");
3414   type[POST_LINE] = DOUBLE_PRECISION;
3415   data_length[POST_LINE] = 2*ndim;
3416   data_class[POST_LINE] = POST;
3417 
3418   strcpy(name[POST_LINE_DOF],"post_line_dof");
3419   type[POST_LINE_DOF] = DOUBLE_PRECISION;
3420   data_length[POST_LINE_DOF] = nuknwn;
3421   data_class[POST_LINE_DOF] = POST;
3422 
3423   strcpy(name[POST_LINE_DOF_CALCUL],"post_line_dof_calcul");
3424   type[POST_LINE_DOF_CALCUL] = DOUBLE_PRECISION;
3425   data_length[POST_LINE_DOF_CALCUL] = MCALCUL;
3426   fixed_length[POST_LINE_DOF_CALCUL] = 0;
3427   data_class[POST_LINE_DOF_CALCUL] = POST;
3428 
3429   strcpy(name[POST_LINE_MOMENT],"post_line_moment");
3430   type[POST_LINE_MOMENT] = INTEGER;
3431   data_length[POST_LINE_MOMENT] = 1;
3432   data_class[POST_LINE_MOMENT] = POST;
3433 
3434   strcpy(name[POST_LINE_N],"post_line_n");
3435   type[POST_LINE_N] = INTEGER;
3436   data_length[POST_LINE_N] = 1;
3437   data_class[POST_LINE_N] = POST;
3438 
3439   strcpy(name[POST_LINE_OPERAT],"post_line_operat");
3440   type[POST_LINE_OPERAT] = INTEGER;
3441   data_length[POST_LINE_OPERAT] = 1;
3442   data_class[POST_LINE_OPERAT] = POST;
3443 
3444   strcpy(name[POST_NODE],"post_node");
3445   type[POST_NODE] = INTEGER;
3446   data_length[POST_NODE] = 4;
3447   fixed_length[POST_NODE] = 0;
3448   data_class[POST_NODE] = POST;
3449 
3450   strcpy(name[POST_NODE_RESULT],"post_node_result");
3451   type[POST_NODE_RESULT] = DOUBLE_PRECISION;
3452   data_length[POST_NODE_RESULT] = DATA_ITEM_SIZE;
3453   fixed_length[POST_NODE_RESULT] = 0;
3454   data_class[POST_NODE_RESULT] = POST;
3455 
3456   strcpy(name[POST_NODE_RHSIDE_FIXED],"post_node_rhside_fixed");
3457   type[POST_NODE_RHSIDE_FIXED] = DOUBLE_PRECISION;
3458   data_length[POST_NODE_RHSIDE_FIXED] = npuknwn;
3459   data_class[POST_NODE_RHSIDE_FIXED] = POST;
3460   no_index[POST_NODE_RHSIDE_FIXED] = 1;
3461 
3462   strcpy(name[POST_NODE_RHSIDE_FREE],"post_node_rhside_free");
3463   type[POST_NODE_RHSIDE_FREE] = DOUBLE_PRECISION;
3464   data_length[POST_NODE_RHSIDE_FREE] = npuknwn;
3465   data_class[POST_NODE_RHSIDE_FREE] = POST;
3466   no_index[POST_NODE_RHSIDE_FREE] = 1;
3467 
3468   strcpy(name[POST_NODE_RHSIDE_RATIO],"post_node_rhside_ratio");
3469   type[POST_NODE_RHSIDE_RATIO] = DOUBLE_PRECISION;
3470   data_length[POST_NODE_RHSIDE_RATIO] = 1;
3471   data_class[POST_NODE_RHSIDE_RATIO] = POST;
3472   no_index[POST_NODE_RHSIDE_RATIO] = 1;
3473 
3474   strcpy(name[POST_NODE_RHSIDE_RATIO_UNKNOWNTYPES],"post_node_rhside_ratio_unknowntypes");
3475   type[POST_NODE_RHSIDE_RATIO_UNKNOWNTYPES] = INTEGER;
3476   data_length[POST_NODE_RHSIDE_RATIO_UNKNOWNTYPES] = DATA_ITEM_SIZE;
3477   data_class[POST_NODE_RHSIDE_RATIO_UNKNOWNTYPES] = POST;
3478   fixed_length[POST_NODE_RHSIDE_RATIO_UNKNOWNTYPES] = 0;
3479   no_index[POST_NODE_RHSIDE_RATIO_UNKNOWNTYPES] = 1;
3480 
3481   strcpy(name[POST_POINT],"post_point");
3482   type[POST_POINT] = DOUBLE_PRECISION;
3483   data_length[POST_POINT] = ndim;
3484   data_class[POST_POINT] = POST;
3485 
3486   strcpy(name[POST_POINT_DOF],"post_point_dof");
3487   type[POST_POINT_DOF] = DOUBLE_PRECISION;
3488   data_length[POST_POINT_DOF] = nuknwn;
3489   data_class[POST_POINT_DOF] = POST;
3490 
3491   strcpy(name[POST_POINT_DOF_CALCUL],"post_point_dof_calcul");
3492   type[POST_POINT_DOF_CALCUL] = DOUBLE_PRECISION;
3493   data_length[POST_POINT_DOF_CALCUL] = MCALCUL;
3494   fixed_length[POST_POINT_DOF_CALCUL] = 0;
3495   data_class[POST_POINT_DOF_CALCUL] = POST;
3496 
3497   strcpy(name[POST_QUADRILATERAL],"post_quadrilateral");
3498   type[POST_QUADRILATERAL] = DOUBLE_PRECISION;
3499   data_length[POST_QUADRILATERAL] = 4*ndim;
3500   data_class[POST_QUADRILATERAL] = POST;
3501 
3502   strcpy(name[POST_QUADRILATERAL_DOF],"post_quadrilateral_dof");
3503   type[POST_QUADRILATERAL_DOF] = DOUBLE_PRECISION;
3504   data_length[POST_QUADRILATERAL_DOF] = nuknwn;
3505   data_class[POST_QUADRILATERAL_DOF] = POST;
3506 
3507   strcpy(name[POST_QUADRILATERAL_DOF_CALCUL],"post_quadrilateral_dof_calcul");
3508   type[POST_QUADRILATERAL_DOF_CALCUL] = DOUBLE_PRECISION;
3509   data_length[POST_QUADRILATERAL_DOF_CALCUL] = DATA_ITEM_SIZE;
3510   fixed_length[POST_QUADRILATERAL_DOF_CALCUL] = 0;
3511   data_class[POST_QUADRILATERAL_DOF_CALCUL] = POST;
3512 
3513   strcpy(name[POST_QUADRILATERAL_N],"post_quadrilateral_n");
3514   type[POST_QUADRILATERAL_N] = INTEGER;
3515   data_length[POST_QUADRILATERAL_N] = 1;
3516   data_class[POST_QUADRILATERAL_N] = POST;
3517 
3518   strcpy(name[PREONLY],"preonly");
3519 
3520   strcpy(name[PRINT],"print");
3521 
3522   strcpy(name[PRINT_ARITHMETIC],"print_arithmetic");
3523   type[PRINT_ARITHMETIC] = INTEGER;
3524   data_length[PRINT_ARITHMETIC] = 1;
3525   no_index[PRINT_ARITHMETIC] = 1;
3526 
3527   strcpy(name[PRINT_CONTROL],"print_control");
3528   type[PRINT_CONTROL] = INTEGER;
3529   data_length[PRINT_CONTROL] = 1;
3530   no_index[PRINT_CONTROL] = 1;
3531 
3532   strcpy(name[PRINT_DEFINE],"print_define");
3533   type[PRINT_DEFINE] = INTEGER;
3534   data_length[PRINT_DEFINE] = 1;
3535   no_index[PRINT_DEFINE] = 1;
3536 
3537   strcpy(name[PRINT_FAILURE],"print_failure");
3538   type[PRINT_FAILURE] = INTEGER;
3539   data_length[PRINT_FAILURE] = 1;
3540   data_class[PRINT_FAILURE] = PRINT;
3541   no_index[PRINT_FAILURE] = 1;
3542 
3543   strcpy(name[PRINT_FILTER],"print_filter");
3544   type[PRINT_FILTER] = INTEGER;
3545   data_length[PRINT_FILTER] = DATA_ITEM_SIZE;
3546   fixed_length[PRINT_FILTER] = 0;
3547   data_class[PRINT_FILTER] = PRINT;
3548 
3549   strcpy(name[PRINT_LASTDATABASE],"print_lastdatabase");
3550   type[PRINT_LASTDATABASE] = INTEGER;
3551   data_length[PRINT_LASTDATABASE] = 1;
3552   data_class[PRINT_LASTDATABASE] = PRINT;
3553   no_index[PRINT_LASTDATABASE] = 1;
3554 
3555   strcpy(name[PRINT_SOLVER],"print_solver");
3556   type[PRINT_SOLVER] = INTEGER;
3557   data_length[PRINT_SOLVER] = 1;
3558   no_index[PRINT_SOLVER] = 1;
3559 
3560   strcpy(name[PRINT_WHERE],"print_where");
3561   type[PRINT_WHERE] = INTEGER;
3562   data_length[PRINT_WHERE] = 1;
3563   data_class[PRINT_WHERE] = PRINT;
3564   no_index[PRINT_WHERE] = 1;
3565 
3566   strcpy(name[PRISM6],"prism6");
3567 
3568   strcpy(name[PRIVAL],"prival");
3569 
3570   strcpy(name[PRIVEC],"privec");
3571 
3572   strcpy(name[P_COARSEN],"p_coarsen");
3573 
3574   strcpy(name[P_REFINEMENT],"p_refinement");
3575 
3576   strcpy(name[PUT],"put");
3577 
3578   strcpy(name[QUAD4],"quad4");
3579 
3580   strcpy(name[QUAD9],"quad9");
3581 
3582   strcpy(name[QUAD16],"quad16");
3583 
3584   strcpy(name[RA],"ra");
3585 
3586   strcpy(name[RECTANGLE],"rectangle" );
3587 
3588   strcpy(name[RESIDUE],"residue");
3589 
3590   strcpy(name[RESTART],"restart");
3591 
3592   strcpy(name[RICHARDSON],"richardson");
3593 
3594   strcpy(name[ROTATION_X_AXIS],"rotation_x_axis");
3595 
3596   strcpy(name[ROTATION_Y_AXIS],"rotation_y_axis");
3597 
3598   strcpy(name[ROTATION_Z_AXIS],"rotation_z_axis");
3599 
3600   strcpy(name[SCALAR],"scalar" );
3601 
3602   strcpy(name[SEPARATE],"separate");
3603 
3604   strcpy(name[SEPARATE_INDEX],"separate_index");
3605 
3606   strcpy(name[SEPARATE_SEQUENTIAL],"separate_sequential");
3607 
3608   strcpy(name[SHELL],"shell");
3609 
3610   strcpy(name[SIZEDEV],"sizedev");
3611 
3612   strcpy(name[MISES],"mises");
3613 
3614   strcpy(name[SIZETOT],"sizetot");
3615 
3616   strcpy(name[SLES],"sles");
3617 
3618   strcpy(name[SLIDE_FRICTION],"slide_friction");
3619   type[SLIDE_FRICTION] = DOUBLE_PRECISION;
3620   data_length[SLIDE_FRICTION] = 1;
3621   data_class[SLIDE_FRICTION] = SLIDE;
3622 
3623   strcpy(name[SLIDE_GEOMETRY],"slide_geometry");
3624   type[SLIDE_GEOMETRY] = INTEGER;
3625   data_length[SLIDE_GEOMETRY] = 2;
3626   data_class[SLIDE_GEOMETRY] = SLIDE;
3627 
3628   strcpy(name[SLIDE_PENALTY],"slide_penalty");
3629   type[SLIDE_PENALTY] = DOUBLE_PRECISION;
3630   data_length[SLIDE_PENALTY] = 1;
3631   data_class[SLIDE_PENALTY] = SLIDE;
3632 
3633   strcpy(name[SOR],"sor");
3634 
3635   strcpy(name[SPHERE],"sphere");
3636 
3637   strcpy(name[SPRING],"spring");
3638 
3639   strcpy(name[SPRING1],"spring1");
3640 
3641   strcpy(name[SPRING2],"spring2");
3642 
3643   strcpy(name[STATIC],"static" );
3644 
3645   strcpy(name[STEP],"step");
3646 
3647   strcpy(name[STRESS],"stress");
3648 
3649   strcpy(name[SUM],"sum");
3650 
3651   strcpy(name[TARGET],"target");
3652 
3653   strcpy(name[TARGET_ITEM],"target_item");
3654   type[TARGET_ITEM] = INTEGER;
3655   data_length[TARGET_ITEM] = 3;
3656   data_class[TARGET_ITEM] = TARGET;
3657   data_required[TARGET_ITEM] = TARGET_VALUE;
3658 
3659   strcpy(name[TARGET_VALUE],"target_value");
3660   type[TARGET_VALUE] = DOUBLE_PRECISION;
3661   data_length[TARGET_VALUE] = 2;
3662   data_class[TARGET_VALUE] = TARGET;
3663   data_required[TARGET_VALUE] = TARGET_ITEM;
3664 
3665   strcpy(name[TCQMR],"tcqmr");
3666 
3667   strcpy(name[TENDON],"tendon");
3668   type[TENDON] = DOUBLE_PRECISION;
3669   data_length[TENDON] = 2*ndim + 1;
3670   data_class[TENDON] = TENDON;
3671 
3672   strcpy(name[TENDON_ELASTI],"tendon_elasti");
3673   type[TENDON_ELASTI] = DOUBLE_PRECISION;
3674   data_length[TENDON_ELASTI] = 1;
3675   data_class[TENDON_ELASTI] = TENDON;
3676   data_required[TENDON_ELASTI] = TENDON;
3677 
3678   strcpy(name[TENDON_EXPANSION],"tendon_expansion");
3679   type[TENDON_EXPANSION] = DOUBLE_PRECISION;
3680   data_length[TENDON_EXPANSION] = 1;
3681   data_class[TENDON_EXPANSION] = TENDON;
3682   data_required[TENDON_EXPANSION] = TENDON;
3683 
3684   strcpy(name[TENDON_PLASTI],"tendon_plasti");
3685   type[TENDON_PLASTI] = DOUBLE_PRECISION;
3686   data_length[TENDON_PLASTI] = 1;
3687   data_class[TENDON_PLASTI] = TENDON;
3688   data_required[TENDON_PLASTI] = TENDON;
3689 
3690   strcpy(name[TENDON_SPLIT],"tendon_split");
3691   type[TENDON_SPLIT] = DOUBLE_PRECISION;
3692   data_length[TENDON_SPLIT] = 2;
3693   external[TENDON_SPLIT] = 0;
3694   data_class[TENDON_SPLIT] = TENDON;
3695   data_required[TENDON_SPLIT] = TENDON;
3696 
3697   strcpy(name[TENDON_SPLIT_ELEMENT],"tendon_split_element");
3698   type[TENDON_SPLIT_ELEMENT] = INTEGER;
3699   data_length[TENDON_SPLIT_ELEMENT] = MTENDON;
3700   fixed_length[TENDON_SPLIT_ELEMENT] = 0;
3701   external[TENDON_SPLIT_ELEMENT] = 0;
3702   data_class[TENDON_SPLIT_ELEMENT] = TENDON;
3703   data_required[TENDON_SPLIT_ELEMENT] = TENDON;
3704 
3705   strcpy(name[TENDON_STRESS],"tendon_stress");
3706   type[TENDON_STRESS] = DOUBLE_PRECISION;
3707   data_length[TENDON_STRESS] = 1;
3708   data_class[TENDON_STRESS] = TENDON;
3709   data_required[TENDON_STRESS] = TENDON;
3710 
3711   strcpy(name[TENDON_STRESS_TIME],"tendon_stress_time");
3712   type[TENDON_STRESS_TIME] = DOUBLE_PRECISION;
3713   data_length[TENDON_STRESS_TIME] = DATA_ITEM_SIZE;
3714   fixed_length[TENDON_STRESS_TIME] = 0;
3715   data_class[TENDON_STRESS_TIME] = TENDON;
3716   data_required[TENDON_STRESS_TIME] = TENDON;
3717 
3718   strcpy(name[TET4],"tet4");
3719 
3720   strcpy(name[TET10],"tet10");
3721 
3722   strcpy(name[TFQMR],"tfqmr");
3723 
3724   strcpy(name[THERMAL],"thermal");
3725 
3726   strcpy(name[TIME],"time");
3727 
3728   strcpy(name[TIME_AT_START],"time_at_start");
3729   type[TIME_AT_START] = INTEGER;
3730   data_length[TIME_AT_START] = 1;
3731   external[TIME_AT_START] = 0;
3732   data_class[TIME_AT_START] = TIME;
3733 
3734   strcpy(name[TIME_CURRENT],"time_current");
3735   type[TIME_CURRENT] = DOUBLE_PRECISION;
3736   data_length[TIME_CURRENT] = 1;
3737   no_index[TIME_CURRENT] = 1;
3738   version_all[TIME_CURRENT] = 1;
3739   data_class[TIME_CURRENT] = TIME;
3740 
3741   strcpy(name[TIME_CALCULATION],"time_calculation");
3742   type[TIME_CALCULATION] = INTEGER;
3743   data_length[TIME_CALCULATION] = 1;
3744   no_index[TIME_CALCULATION] = 1;
3745   data_class[TIME_CALCULATION] = TIME;
3746 
3747   strcpy(name[TIME_NEW],"time_new");
3748   type[TIME_NEW] = DOUBLE_PRECISION;
3749   external[TIME_NEW] = 0;
3750   data_length[TIME_NEW] = 1;
3751   no_index[TIME_NEW] = 1;
3752   version_all[TIME_NEW] = 1;
3753   data_class[TIME_NEW] = TIME;
3754 
3755   strcpy(name[TIME_OLD],"time_old");
3756   type[TIME_OLD] = DOUBLE_PRECISION;
3757   external[TIME_OLD] = 0;
3758   data_length[TIME_OLD] = 1;
3759   no_index[TIME_OLD] = 1;
3760   version_all[TIME_OLD] = 1;
3761   data_class[TIME_OLD] = TIME;
3762 
3763   strcpy(name[TO],"to");
3764 
3765   strcpy(name[TOTAL],"total");
3766 
3767   strcpy(name[TOTAL_LINEAR],"total_linear");
3768 
3769   strcpy(name[TOTAL_PIOLA],"total_piola");
3770 
3771   strcpy(name[TRIA3],"tria3");
3772 
3773   strcpy(name[TRIA6],"tria6");
3774 
3775   strcpy(name[TRUSS],"truss");
3776 
3777   strcpy(name[TRUSSBEAM],"trussbeam");
3778 
3779   strcpy(name[UNIFORM],"uniform");
3780 
3781   strcpy(name[UPDATED],"updated");
3782 
3783   strcpy(name[UPDATED_WITHOUT_ROTATION],"updated_without_rotation");
3784 
3785   strcpy(name[USE],"use" );
3786 
3787   strcpy(name[USER],"user" );
3788 
3789   strcpy(name[VALUE],"value");
3790 
3791   strcpy(name[VECTOR],"vector");
3792 
3793   strcpy(name[VOLUME_FACTOR],"volume_factor");
3794   type[VOLUME_FACTOR] = DOUBLE_PRECISION;
3795   data_length[VOLUME_FACTOR] = DATA_ITEM_SIZE;
3796   fixed_length[VOLUME_FACTOR] = 0;
3797   no_index[VOLUME_FACTOR] = 1;
3798   data_class[VOLUME_FACTOR] = VOLUME;
3799 
3800   strcpy(name[WAVE],"wave");
3801 
3802   strcpy(name[WAVE_SCALAR],"wave_scalar");
3803 
3804   strcpy(name[WAVE_FSCALAR],"wave_fscalar");
3805 
3806   strcpy(name[YES],"yes");
3807 
3808   strcpy(name[X],"x");
3809 
3810   strcpy(name[Y],"y");
3811 
3812   strcpy(name[Z],"z");
3813 
3814   for ( idat=0; idat<MDAT; idat++ ) {
3815     if ( data_length[idat]<1 ) data_length[idat] = 1;
3816   }
3817 
3818   idat = LAST_DUMMY;
3819   for ( ipuknwn=0; ipuknwn<npuknwn; ipuknwn++ ) {
3820     iuknwn = ipuknwn*nder;
3821     if      ( dof_type[iuknwn]==-BEAM_ROTATION ) {
3822       if ( iuknwn==rot_indx ) n = 0;
3823       n++;
3824       if ( ndim==2 ) {
3825         assert( n==1 );
3826         strcpy( basename, "rotz"  );
3827       }
3828       else {
3829         assert( ndim==3 );
3830         if      ( n==1 ) strcpy( basename, "rotx"  );
3831         else if ( n==2 ) strcpy( basename, "roty"  );
3832         else if ( n==3 ) strcpy( basename, "rotz"  );
3833       }
3834     }
3835     else if ( dof_type[iuknwn]==-CONDIF_TEMPERATURE )
3836       strcpy( basename, "temp"  );
3837     else if ( dof_type[iuknwn]==-GROUNDFLOW_PRESSURE )
3838       strcpy( basename, "pres" );
3839     else if ( dof_type[iuknwn]==-GROUNDFLOW_VELOCITY ) {
3840       if ( iuknwn==gvel_indx ) n = 0;
3841       n++;
3842       if      ( n==1 ) strcpy( basename, "gvelx"  );
3843       else if ( n==2 ) strcpy( basename, "gvely"  );
3844       else if ( n==3 ) strcpy( basename, "gvelz"  );
3845     }
3846     else if ( dof_type[iuknwn]==-MATERI_DAMAGE )
3847       strcpy( basename, "dam" );
3848     else if ( dof_type[iuknwn]==-MATERI_DENSITY )
3849       strcpy( basename, "dens" );
3850     else if ( dof_type[iuknwn]==-MATERI_DIFFUSION )
3851       strcpy( basename, "diff" );
3852     else if ( dof_type[iuknwn]==-MATERI_DISPLACEMENT ) {
3853       if ( iuknwn==dis_indx ) n = 0;
3854       n++;
3855       if      ( n==1 ) strcpy( basename, "disx"  );
3856       else if ( n==2 ) strcpy( basename, "disy"  );
3857       else if ( n==3 ) strcpy( basename, "disz"  );
3858     }
3859     else if ( dof_type[iuknwn]==-MATERI_HISTORY_VARIABLES ) {
3860       if ( iuknwn==hisv_indx ) n = 0;
3861       strcpy( basename, "hisv" );
3862       long_to_a( n, str );
3863       strcat( basename, str );
3864       n++;
3865     }
3866     else if ( dof_type[iuknwn]==-MATERI_MAXWELL_STRESS ) {
3867       if ( iuknwn==mstres_indx ) {
3868         m = 1;
3869         n = 0;
3870       }
3871       n++;
3872       if ( n>6 ) {
3873         m++;
3874         n = 1;
3875       }
3876       if      ( n==1 ) strcpy( tmpname, "msigxx" );
3877       else if ( n==2 ) strcpy( tmpname, "msigxy" );
3878       else if ( n==3 ) strcpy( tmpname, "msigxz" );
3879       else if ( n==4 ) strcpy( tmpname, "msigyy" );
3880       else if ( n==5 ) strcpy( tmpname, "msigyz" );
3881       else if ( n==6 ) strcpy( tmpname, "msigzz" );
3882       long_to_a( m, basename );
3883       strcat( basename, tmpname );
3884     }
3885     else if ( dof_type[iuknwn]==-MATERI_PLASTI_F )
3886       strcpy( basename, "f" );
3887     else if ( dof_type[iuknwn]==-MATERI_PLASTI_F_NONLOCAL )
3888       strcpy( basename, "fn" );
3889     else if ( dof_type[iuknwn]==-MATERI_PLASTI_INCREMENTAL_SUBSTEPS )
3890       strcpy( basename, "substeps" );
3891     else if ( dof_type[iuknwn]==-MATERI_PLASTI_KAPPA )
3892       strcpy( basename, "kap" );
3893     else if ( dof_type[iuknwn]==-MATERI_PLASTI_RHO ) {
3894       if ( iuknwn==rho_indx ) n = 0;
3895       n++;
3896       if      ( n==1 ) strcpy( basename, "rhoxx" );
3897       else if ( n==2 ) strcpy( basename, "rhoxy" );
3898       else if ( n==3 ) strcpy( basename, "rhoxz" );
3899       else if ( n==4 ) strcpy( basename, "rhoyy" );
3900       else if ( n==5 ) strcpy( basename, "rhoyz" );
3901       else if ( n==6 ) strcpy( basename, "rhozz" );
3902     }
3903     else if ( dof_type[iuknwn]==-MATERI_PLASTI_SOFTVAR_LOCAL )
3904       strcpy( basename, "softvar_loc" );
3905     else if ( dof_type[iuknwn]==-MATERI_PLASTI_SOFTVAR_NONLOCAL )
3906       strcpy( basename, "softvar_nonloc" );
3907     else if ( dof_type[iuknwn]==-MATERI_STRAINENERGY )
3908       strcpy( basename, "ener" );
3909     else if ( dof_type[iuknwn]==-MATERI_STRAIN_ELASTI ) {
3910       if ( iuknwn==epe_indx ) n = 0;
3911       n++;
3912       if      ( n==1 ) strcpy( basename, "epexx" );
3913       else if ( n==2 ) strcpy( basename, "epexy" );
3914       else if ( n==3 ) strcpy( basename, "epexz" );
3915       else if ( n==4 ) strcpy( basename, "epeyy" );
3916       else if ( n==5 ) strcpy( basename, "epeyz" );
3917       else if ( n==6 ) strcpy( basename, "epezz" );
3918     }
3919     else if ( dof_type[iuknwn]==-MATERI_STRAIN_INTERGRANULAR ) {
3920       if ( iuknwn==epi_indx ) n = 0;
3921       n++;
3922       if      ( n==1 ) strcpy( basename, "epixx" );
3923       else if ( n==2 ) strcpy( basename, "epixy" );
3924       else if ( n==3 ) strcpy( basename, "epixz" );
3925       else if ( n==4 ) strcpy( basename, "epiyy" );
3926       else if ( n==5 ) strcpy( basename, "epiyz" );
3927       else if ( n==6 ) strcpy( basename, "epizz" );
3928     }
3929     else if ( dof_type[iuknwn]==-MATERI_STRAIN_PLASTI ) {
3930       if ( iuknwn==epp_indx ) n = 0;
3931       n++;
3932       if      ( n==1 ) strcpy( basename, "eppxx" );
3933       else if ( n==2 ) strcpy( basename, "eppxy" );
3934       else if ( n==3 ) strcpy( basename, "eppxz" );
3935       else if ( n==4 ) strcpy( basename, "eppyy" );
3936       else if ( n==5 ) strcpy( basename, "eppyz" );
3937       else if ( n==6 ) strcpy( basename, "eppzz" );
3938     }
3939     else if ( dof_type[iuknwn]==-MATERI_STRAIN_TOTAL ) {
3940       if ( iuknwn==ept_indx ) n = 0;
3941       n++;
3942       if      ( n==1 ) strcpy( basename, "eptxx" );
3943       else if ( n==2 ) strcpy( basename, "eptxy" );
3944       else if ( n==3 ) strcpy( basename, "eptxz" );
3945       else if ( n==4 ) strcpy( basename, "eptyy" );
3946       else if ( n==5 ) strcpy( basename, "eptyz" );
3947       else if ( n==6 ) strcpy( basename, "eptzz" );
3948     }
3949     else if ( dof_type[iuknwn]==-MATERI_STRESS ) {
3950       if ( iuknwn==stres_indx ) n = 0;
3951       n++;
3952       if      ( n==1 ) strcpy( basename, "sigxx" );
3953       else if ( n==2 ) strcpy( basename, "sigxy" );
3954       else if ( n==3 ) strcpy( basename, "sigxz" );
3955       else if ( n==4 ) strcpy( basename, "sigyy" );
3956       else if ( n==5 ) strcpy( basename, "sigyz" );
3957       else if ( n==6 ) strcpy( basename, "sigzz" );
3958     }
3959     else if ( dof_type[iuknwn]==-MATERI_VELOCITY ) {
3960       if ( iuknwn==vel_indx ) n = 0;
3961       n++;
3962       if      ( n==1 ) strcpy( basename, "velx"  );
3963       else if ( n==2 ) strcpy( basename, "vely"  );
3964       else if ( n==3 ) strcpy( basename, "velz"  );
3965     }
3966     else if ( dof_type[iuknwn]==-MATERI_VELOCITY_INTEGRATED ) {
3967       if ( iuknwn==veli_indx ) n = 0;
3968       n++;
3969       if      ( n==1 ) strcpy( basename, "velix"  );
3970       else if ( n==2 ) strcpy( basename, "veliy"  );
3971       else if ( n==3 ) strcpy( basename, "veliz"  );
3972     }
3973     else if ( dof_type[iuknwn]==-MATERI_VOID_FRACTION )
3974       strcpy( basename, "void" );
3975     else if ( dof_type[iuknwn]==-MATERI_WORK )
3976       strcpy( basename, "work" );
3977     else if ( dof_type[iuknwn]==-MAXWELL_E ) {
3978       if ( iuknwn==maxe_indx ) n = 0;
3979       n++;
3980       if      ( n==1 ) strcpy( basename, "ex"  );
3981       else if ( n==2 ) strcpy( basename, "ey"  );
3982       else if ( n==3 ) strcpy( basename, "ez"  );
3983     }
3984     else if ( dof_type[iuknwn]==-MAXWELL_EI ) {
3985       if ( iuknwn==maxei_indx ) n = 0;
3986       n++;
3987       if      ( n==1 ) strcpy( basename, "eix"  );
3988       else if ( n==2 ) strcpy( basename, "eiy"  );
3989       else if ( n==3 ) strcpy( basename, "eiz"  );
3990     }
3991     else if ( dof_type[iuknwn]==-MAXWELL_ER ) {
3992       if ( iuknwn==maxer_indx ) n = 0;
3993       n++;
3994       if      ( n==1 ) strcpy( basename, "erx"  );
3995       else if ( n==2 ) strcpy( basename, "ery"  );
3996       else if ( n==3 ) strcpy( basename, "erz"  );
3997     }
3998     else if ( dof_type[iuknwn]==-MAXWELL_FE ) {
3999       if ( iuknwn==maxfe_indx ) n = 0;
4000       n++;
4001       if      ( n==1 ) strcpy( basename, "fex"  );
4002       else if ( n==2 ) strcpy( basename, "fey"  );
4003       else if ( n==3 ) strcpy( basename, "fez"  );
4004     }
4005     else if ( dof_type[iuknwn]==-RESIDUE )
4006       strcpy( basename, "res" );
4007     else if ( dof_type[iuknwn]==-WAVE_SCALAR )
4008       strcpy( basename, "scal"  );
4009     else if ( dof_type[iuknwn]==-WAVE_FSCALAR )
4010       strcpy( basename, "fscal"  );
4011 
4012     idat++; assert( idat<MDAT );
4013     strcpy( name[idat], basename );
4014     dof_label[iuknwn] = -idat;
4015 
4016     if ( derivatives ) {
4017       for ( idim=0; idim<ndim; idim++ ) {
4018         iuknwn++;
4019         if      ( idim==0 ) strcpy( str, "x" );
4020         else if ( idim==1 ) strcpy( str, "y" );
4021         else if ( idim==2 ) strcpy( str, "z" );
4022         strcat( str, basename );
4023         idat++; strcpy( name[idat], str );
4024         dof_label[iuknwn] = -idat;
4025       }
4026       iuknwn++;
4027       strcpy( str, "t" );
4028       strcat( str, basename );
4029       idat++; strcpy( name[idat], str );
4030       dof_label[iuknwn] = -idat;
4031     }
4032   }
4033 
4034 }
4035 
db(long int idat,long int index,long int * ival,double * dval,long int & length,long int version,long int task)4036 long int db( long int idat, long int index, long int *ival,
4037   double *dval, long int &length, long int version, long int task )
4038 
4039 {
4040   long int i=0, l=0, data_ptr=0, data_number=0;
4041 
4042   data_number = labs(idat);
4043   if ( version<0 || version>=MVERSION ||
4044        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4045     pri( "Version failure for version ", version );
4046     db_error( idat, index );
4047   }
4048 
4049   if      ( task==GET ) {
4050     if ( !db_active_index(data_number,index,version) ) db_error( idat, index );
4051     length = db_len( data_number, index, version );
4052   }
4053   else if ( task==GET_IF_EXISTS ) {
4054     if ( !db_active_index(data_number,index,version) ) {
4055       length = 0;
4056       return 0;
4057     }
4058     length = db_len( data_number, index, version );
4059   }
4060   else if ( task==GET_AND_CHECK ) {
4061     if ( !db_active_index(data_number,index,version) ) db_error( idat, index );
4062     l = db_len( data_number, index, version );
4063     if ( l!=length ) db_error( idat, index );
4064   }
4065   else if ( task==PUT ) {
4066     if ( index<0 )
4067       db_error( idat, index );
4068     if ( index>0 && db_no_index(idat) )
4069       db_error( idat, index );
4070     if ( length<1 )
4071       db_error( idat, index );
4072     if ( length>db_data_length(data_number) ) {
4073       pri( "Length too small of ", db_name(data_number) );
4074       pri( "The length is ", db_data_length(data_number) );
4075       pri( "It should become at least", length );
4076       pri( "Increase it and recompile." );
4077       exit(TN_EXIT_STATUS);
4078     }
4079     if ( db_fixed_length( idat ) && length!=db_data_length(data_number) )
4080       db_error( idat, index );
4081     db_allocate( data_number, index, version, MAXIMAL );
4082   }
4083   data_ptr = db_data_length(data_number) * index;
4084 
4085   if ( db_type(data_number)==INTEGER ) {
4086     for ( i=0; i<length; i++ ) {
4087       if ( task==PUT )
4088         int_data[data_number][version][data_ptr+i] = ival[i];
4089       else
4090         ival[i] = int_data[data_number][version][data_ptr+i];
4091     }
4092   }
4093   else {
4094     for ( i=0; i<length; i++ ) {
4095       if ( task==PUT )
4096         dbl_data[data_number][version][data_ptr+i] = dval[i];
4097       else
4098         dval[i] = dbl_data[data_number][version][data_ptr+i];
4099     }
4100   }
4101 
4102   if ( task==PUT ) {
4103     if ( length<db_data_length(data_number) ) {
4104       if ( db_type(data_number)==INTEGER )
4105         int_data[data_number][version][data_ptr+length] = LONG_MIN;
4106       else
4107         dbl_data[data_number][version][data_ptr+length] = DBL_MAX;
4108     }
4109   }
4110 
4111   return 1;
4112 
4113 }
4114 
4115 
db_active_index(long int idat,long int index,long int version)4116 long int db_active_index( long int idat, long int index, long int version )
4117 
4118 {
4119   long int result=1, max=-1, data_number=0, data_ptr=0;
4120 
4121   data_number = labs(idat);
4122   max = max_index[data_number][version];
4123   data_ptr = db_data_length(data_number) * index;
4124 
4125   if      ( index<0 || index>max )
4126     result = 0;
4127   else if ( type[data_number]==DOUBLE_PRECISION )
4128     result = (dbl_data[data_number][version][data_ptr]!=DBL_MAX);
4129   else {
4130     result = (int_data[data_number][version][data_ptr]!=LONG_MIN);
4131   }
4132   return result;
4133 
4134 }
4135 
db_allocate(long int idat,long int index,long int version,long int task)4136 void db_allocate( long int idat, long int index, long int version, long int task )
4137 
4138 {
4139   long int n=0, n_old=0, max_old=0, data_number=0,
4140     max=0, length=0, increase=0, *int_old=0;
4141   double *dbl_old=0;
4142 
4143   data_number = labs(idat);
4144   if ( version<0 || version>=MVERSION ||
4145        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4146     pri( "Version failure for version ", version );
4147     db_error( idat, index );
4148   }
4149 
4150   db_max_index( data_number, max_old, version, GET );
4151   if ( index<=max_old ) return;
4152 
4153   if ( parallel_active ) {
4154     pri( "Program error detected for data", -idat );
4155     pri( "Data is allocated in a parallel loop.");
4156     pri( "Please report this error with the input file.");
4157     exit_tn_on_error();
4158   }
4159 
4160   max = index;
4161   if ( task==MAXIMAL && !db_no_index(data_number) ) {
4162     increase = index/10; // a bit extra for future use, heuristic
4163     if ( increase<1 ) increase = 1;
4164     max += increase;
4165   }
4166   db_max_index( data_number, max, version, PUT );
4167 
4168   length = db_data_length( data_number );
4169   n     = (1+max    ) * length;
4170   n_old = (1+max_old) * length;
4171   if ( db_type(data_number)==INTEGER ) {
4172     if ( max_old>=0 ) int_old = int_data[data_number][version];
4173     int_data[data_number][version] = get_new_int(n);
4174     array_set( int_data[data_number][version], LONG_MIN, n );
4175     if ( max_old>=0 ) {
4176       array_move( int_old, int_data[data_number][version], n_old );
4177       delete[] int_old;
4178     }
4179   }
4180   else if ( db_type(data_number)==DOUBLE_PRECISION ) {
4181     if ( max_old>=0 ) dbl_old = dbl_data[data_number][version];
4182     dbl_data[data_number][version] = get_new_dbl(n);
4183     array_set( dbl_data[data_number][version], DBL_MAX, n );
4184     if ( max_old>=0 ) {
4185       array_move( dbl_old, dbl_data[data_number][version], n_old );
4186       delete[] dbl_old;
4187     }
4188   }
4189   else {
4190     db_error( data_number, version );
4191   }
4192 
4193 }
4194 
db_allocate_class(long int cl,long int index,long int version)4195 void db_allocate_class( long int cl, long int index, long int version )
4196 
4197 {
4198   long int idat=0, ic=0;
4199 
4200   ic = labs( cl );
4201 
4202   for ( idat=0; idat<MDAT; idat++ ) {
4203     if ( db_data_class(idat)==ic && db_version( idat, version ) )
4204       db_allocate( idat, index, version, -MINIMAL );
4205   }
4206 }
4207 
db_partialname(long int idat,char * str)4208 long int db_partialname( long int idat, char *str )
4209 
4210 {
4211   long int return_value=0;
4212   char *name;
4213 
4214   name = db_name( idat );
4215   if ( strstr(name,str)!=NULL ) return_value = 1;
4216 
4217   return return_value;
4218 }
4219 
db_partialname_any(const char * str)4220 long int db_partialname_any( const char *str )
4221 
4222 {
4223   long int idat=0, max=0, return_value=0;
4224   char *name;
4225 
4226   for ( idat=0; idat<MDAT; idat++ ) {
4227     name = db_name( idat );
4228     if ( strstr(name,str)!=NULL ) {
4229       db_highest_index( idat, max, VERSION_NORMAL );
4230       if ( max>=0 ) return_value = 1;
4231     }
4232   }
4233 
4234   return return_value;
4235 }
4236 
db_partialname_any_index(const char * str,long int index)4237 long int db_partialname_any_index( const char *str, long int index )
4238 
4239 {
4240   long int idat=0, return_value=0;
4241   char *name;
4242 
4243   for ( idat=0; idat<MDAT; idat++ ) {
4244     name = db_name( idat );
4245     if ( strstr(name,str)!=NULL ) {
4246       if ( db_active_index( idat, index, VERSION_NORMAL ) )
4247         return_value = 1;
4248     }
4249   }
4250 
4251   return return_value;
4252 }
4253 
db_data_class(long int idat)4254 long int db_data_class( long int idat )
4255 
4256 {
4257   long int data_number=0;
4258 
4259   data_number = labs(idat);
4260   return data_class[data_number];
4261 }
4262 
db_data_required(long int idat)4263 long int db_data_required( long int idat )
4264 
4265 {
4266   long int data_number=0;
4267 
4268   data_number = labs(idat);
4269   return data_required[data_number];
4270 }
4271 
db_close()4272 void db_close( )
4273 
4274 {
4275   long int idat=0, version=0, data_number=0;
4276 
4277   for ( version=0; version<MVERSION; version++ ) {
4278     for ( idat=0; idat<MDAT; idat++ ) {
4279      data_number = labs(idat);
4280       if ( version==0 || version_all[data_number] ) db_delete( idat, version );
4281     }
4282   }
4283 }
4284 
db_copy(long int idat,long int jdat,long int version)4285 void db_copy( long int idat, long int jdat, long int version )
4286 
4287 {
4288   long int n=0, max=0, data_numberi=0, data_numberj=0;
4289 
4290   data_numberi = labs(idat);
4291   data_numberj = labs(jdat);
4292   if ( version<0 || version>=MVERSION ||
4293        (!version_all[data_numberi]&&version!=VERSION_NORMAL) ) {
4294     pri( "Version failure for version ", version );
4295     db_error( idat, -1 );
4296   }
4297   if ( version<0 || version>=MVERSION ||
4298        (!version_all[data_numberj]&&version!=VERSION_NORMAL) ) {
4299     pri( "Version failure for version ", version );
4300     db_error( jdat, -1 );
4301   }
4302 
4303   db_max_index( data_numberi, max, version, GET );
4304   if ( max>=0 ) {
4305     if ( db_data_length(data_numberi)!=db_data_length(data_numberj) )
4306       db_error( data_numberj, -1 );
4307     db_delete( data_numberj, version );
4308     db_allocate( data_numberj, max, version, MINIMAL );
4309     n = (1+max)*db_data_length(data_numberi);
4310     if ( db_type(data_numberi)==INTEGER )
4311       array_move( int_data[data_numberi][version], int_data[data_numberj][version], n );
4312     else
4313       array_move( dbl_data[data_numberi][version], dbl_data[data_numberj][version], n );
4314   }
4315 
4316 }
4317 
db_data_length(long int idat)4318 long int db_data_length( long int idat )
4319 
4320 {
4321 
4322   long int data_number=0;
4323 
4324   data_number = labs(idat);
4325 
4326   return data_length[data_number];
4327 
4328 }
4329 
db_data_length_put(long int idat,long int length)4330 void db_data_length_put( long int idat, long int length )
4331 
4332 {
4333 
4334   long int data_number=0, version=0;
4335 
4336   data_number = labs(idat);
4337 
4338   for ( version=0; version<MVERSION; version++ ) {
4339     if ( db_version( idat, version ) ) db_delete( idat, version );
4340   }
4341   data_length[data_number] = length;
4342 
4343 }
4344 
db_dbl(long int idat,long int version)4345 double *db_dbl( long int idat, long int version )
4346 
4347 {
4348   long int data_number=0, ldum=0;
4349   double *ptr=NULL;
4350 
4351   data_number = labs(idat);
4352   if ( version<0 || version>=MVERSION ||
4353        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4354     pri( "Version failure for version ", version );
4355     db_error( idat, -1 );
4356   }
4357 
4358   if ( db_max_index(data_number,ldum,version,GET)<0 ) db_error( idat, -1 );
4359   if ( db_type(data_number)!=DOUBLE_PRECISION ) db_error( idat, -1 );
4360 
4361   ptr = &dbl_data[data_number][version][0];
4362 
4363   return ptr;
4364 
4365 }
4366 
db_dbl(long int idat,long int index,long int version)4367 double *db_dbl( long int idat, long int index, long int version )
4368 
4369 {
4370   long int data_ptr=0, data_number=0;
4371   double *ptr=NULL;
4372 
4373   data_number = labs(idat);
4374   if ( version<0 || version>=MVERSION ||
4375        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4376     pri( "Version failure for version ", version );
4377     db_error( idat, index );
4378   }
4379 
4380   if ( !db_active_index(data_number,index,version) ) db_error( idat, index );
4381   if ( db_type(data_number)!=DOUBLE_PRECISION ) db_error( idat, index );
4382 
4383   data_ptr = data_length[data_number] * index;
4384   ptr = &dbl_data[data_number][version][data_ptr];
4385 
4386   return ptr;
4387 
4388 }
4389 
db_delete(long int idat,long int version)4390 void db_delete( long int idat, long int version )
4391 
4392 {
4393   long int data_number=0, max=-1, ldum=0;
4394 
4395   data_number = labs(idat);
4396   if ( version<0 || version>=MVERSION ||
4397        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4398     pri( "Version failure for version ", version );
4399     db_error( idat, -1 );
4400   }
4401 
4402   if ( db_max_index(idat,ldum,version,GET)>=0 ) {
4403     if      ( db_type(data_number)==INTEGER )
4404       delete[] int_data[data_number][version];
4405     else
4406       delete[] dbl_data[data_number][version];
4407     db_max_index(idat,max,version,PUT);
4408   }
4409 
4410 }
4411 
db_delete_index(long int idat,long int index,long int version)4412 void db_delete_index( long int idat, long int index, long int version )
4413 
4414 {
4415   long int length=0, data_number=0;
4416 
4417   data_number = labs(idat);
4418   if ( version<0 || version>=MVERSION ||
4419        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4420     pri( "Version failure for version ", version );
4421     db_error( idat, index );
4422   }
4423 
4424   if ( db_active_index(idat,index,version) ) {
4425     length = db_data_length( idat );
4426     if      ( db_type(idat)==INTEGER )
4427       array_set( db_int(idat,index,version), LONG_MIN, length );
4428     else
4429       array_set( db_dbl(idat,index,version), DBL_MAX, length );
4430   }
4431 }
4432 
db_error(long int idat,long int index)4433 void db_error( long int idat, long int index )
4434 
4435 {
4436   pri( "Error detected for data item ", db_name(idat) );
4437   if ( index>=0 && !db_no_index(idat) )
4438     pri( "Error detected for record ", index );
4439 
4440   exit(TN_EXIT_STATUS);
4441 }
4442 
4443 
db_external(long int idat)4444 long int db_external( long int idat )
4445 
4446 {
4447   long int data_number = 0;
4448 
4449   data_number = labs(idat);
4450 
4451   return external[data_number];
4452 
4453 }
4454 
db_fixed_length(long int idat)4455 long int db_fixed_length( long int idat )
4456 
4457 {
4458   long int data_number=0;
4459 
4460   data_number = labs(idat);
4461 
4462   return fixed_length[data_number];
4463 
4464 }
4465 
db_highest_index(long int idat,long int & max,long int version)4466 void db_highest_index( long int idat, long int &max, long int version )
4467 
4468 {
4469   long int index=0, data_number=0;
4470 
4471   data_number = labs(idat);
4472   if ( version<0 || version>=MVERSION ||
4473        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4474     pri( "Version failure for version ", version );
4475     db_error( idat, -1 );
4476   }
4477 
4478   db_max_index( idat, max, version, GET );
4479 
4480   index = max;
4481   while ( index>=0 && !db_active_index(idat,index,version) ) index--;
4482   max = index;
4483 
4484 }
4485 
db_int(long int idat,long int version)4486 long int *db_int( long int idat, long int version )
4487 
4488 {
4489   long int data_number=0, ldum=0, *ptr=NULL;
4490 
4491   data_number = labs(idat);
4492   if ( version<0 || version>=MVERSION ||
4493        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4494     pri( "Version failure for version ", version );
4495     db_error( idat, -1 );
4496   }
4497 
4498   if ( db_max_index(data_number,ldum,version,GET)<0 ) db_error( idat, -1 );
4499   if ( db_type(data_number)!=INTEGER ) db_error( idat, -1 );
4500 
4501   ptr = &int_data[data_number][version][0];
4502 
4503   return ptr;
4504 
4505 }
4506 
db_int(long int idat,long int index,long int version)4507 long int *db_int( long int idat, long int index, long int version )
4508 
4509 {
4510   long int data_ptr=0, data_number=0, *ptr=NULL;
4511 
4512   data_number = labs(idat);
4513   if ( version<0 || version>=MVERSION ||
4514        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4515     pri( "Version failure for version ", version );
4516     db_error( idat, index );
4517   }
4518 
4519   if ( !db_active_index(data_number,index,version) ) db_error( idat, index );
4520   if ( db_type(data_number)!=INTEGER ) db_error( idat, index );
4521 
4522   data_ptr = data_length[data_number] * index;
4523   ptr = &int_data[data_number][version][data_ptr];
4524 
4525   return ptr;
4526 
4527 }
4528 
db_len(long int idat,long int index,long int version)4529 long int db_len( long int idat, long int index, long int version )
4530 
4531 {
4532   long int i=0, l=0, data_ptr=0, data_number=0, length=0, left=0, right=0;
4533 
4534   data_number = labs( idat );
4535   if ( version<0 || version>=MVERSION ||
4536        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4537     pri( "Version failure for version ", version );
4538     db_error( idat, index );
4539   }
4540 
4541   l = data_length[data_number];
4542   if ( fixed_length[data_number] )
4543     length = l;
4544   else if ( db_active_index( idat, index, version ) ) {
4545     data_ptr = l * index;
4546     length = -1;
4547     left = 0;
4548     right = l;
4549     do {
4550       i = ( left + right ) / 2;
4551       if      ( left==right-1 )
4552         length = right;
4553       else if ( type[data_number]==INTEGER ) {
4554         if ( int_data[data_number][version][data_ptr+i]==LONG_MIN )
4555           right = i;
4556         else
4557           left = i;
4558       }
4559       else {
4560         if ( dbl_data[data_number][version][data_ptr+i]==DBL_MAX  )
4561           right = i;
4562         else
4563           left = i;
4564       }
4565     }
4566     while ( length<0 );
4567   }
4568   else {
4569     db_error( idat, index );
4570   }
4571 
4572   return length;
4573 }
4574 
4575 
db_max_index(long int idat,long int & max,long int version,long int task)4576 long int db_max_index( long int idat, long int &max, long int version, long int task )
4577 
4578 {
4579   long int data_number=0;
4580 
4581   data_number = labs(idat);
4582   if ( version<0 || version>=MVERSION ||
4583        (!version_all[data_number]&&version!=VERSION_NORMAL) ) {
4584     pri( "Version failure for version ", version );
4585     db_error( idat, -1 );
4586   }
4587 
4588   assert( data_number>=0 || data_number<MDAT );
4589 
4590   if ( task==GET )
4591     max = max_index[data_number][version];
4592   else {
4593     assert( task==PUT );
4594     max_index[data_number][version] = max;
4595   }
4596 
4597   return max;
4598 }
4599 
db_name(long int idat)4600 char *db_name( long int idat )
4601 
4602 {
4603   long int data_number=0;
4604 
4605   data_number = labs(idat);
4606   return name[data_number];
4607 }
4608 
db_no_index(long int idat)4609 long int db_no_index( long int idat )
4610 {
4611   long int data_number=0;
4612 
4613   data_number = labs(idat);
4614   return no_index[data_number];
4615 }
4616 
db_number(char str[])4617 long int db_number( char str[] )
4618 
4619 {
4620   long int data_number=0, found=-1;
4621 
4622   for ( data_number=0; data_number<MDAT && found<0; data_number++ ) {
4623     if ( !strcmp(str,db_name(data_number)) ) found = data_number;
4624   }
4625 
4626   return found;
4627 
4628 }
4629 
db_print_only(long int idat)4630 long int db_print_only( long int idat )
4631 
4632 {
4633   long int data_number=0, return_value=0;
4634 
4635   data_number = labs(idat);
4636 
4637   return_value = print_only[data_number];
4638   return return_value;
4639 }
4640 
db_set_dbl(long int jdat,long int version)4641 void db_set_dbl( long int jdat, long int version )
4642 
4643 {
4644   long int k=0, max=0, length=0, index=0, data_ptr=0, data_numberi=0,
4645     data_numberj=0, idat=0, ldum=0;
4646 
4647   assert( db_type(jdat)==DOUBLE_PRECISION );
4648 
4649   assert( version>=0 && version<MVERSION );
4650   idat = db_data_class( jdat );
4651   if ( db_max_index(idat,ldum,version,GET)<0 ) return;
4652 
4653   data_numberi = labs(idat);
4654   data_numberj = labs(jdat);
4655   if ( !version_all[data_numberi] ) assert( version==VERSION_NORMAL );
4656 
4657   db_max_index( data_numberi, max, version, GET );
4658   db_delete( data_numberj, version );
4659   db_allocate( data_numberj, max, version, MINIMAL );
4660 
4661   length = db_data_length(data_numberj);
4662   for ( index=0; index<=max; index++ ) {
4663     data_ptr = length * index;
4664     if ( db_active_index(data_numberi,index,version) ) {
4665       for ( k=0; k<length; k++ )
4666         dbl_data[data_numberj][version][data_ptr+k] = 0.;
4667     }
4668     else {
4669       for ( k=0; k<length; k++ ) {
4670         dbl_data[data_numberj][version][data_ptr+k] = DBL_MAX;
4671       }
4672     }
4673   }
4674 
4675 }
4676 
db_set_int(long int jdat,long int version)4677 void db_set_int( long int jdat, long int version )
4678 
4679 {
4680   long int k=0, max=0, length=0, index=0, data_ptr=0, data_numberi=0,
4681     data_numberj=0, idat=0, ldum=0;
4682 
4683   assert( db_type(jdat)==INTEGER );
4684 
4685   assert( version>=0 && version<MVERSION );
4686   idat = db_data_class( jdat );
4687   if ( db_max_index(idat,ldum,version,GET)<0 ) return;
4688 
4689   data_numberi = labs(idat);
4690   data_numberj = labs(jdat);
4691   if ( !version_all[data_numberi] ) assert( version==VERSION_NORMAL );
4692 
4693   db_max_index( data_numberi, max, version, GET );
4694   db_delete( data_numberj, version );
4695   db_allocate( data_numberj, max, version, MINIMAL );
4696 
4697   length = db_data_length(data_numberj);
4698   for ( index=0; index<=max; index++ ) {
4699     data_ptr = length * index;
4700     if ( db_active_index(data_numberi,index,version) ) {
4701       for ( k=0; k<length; k++ )
4702         int_data[data_numberj][version][data_ptr+k] = 0;
4703     }
4704     else {
4705       for ( k=0; k<length; k++ )
4706         int_data[data_numberj][version][data_ptr+k] = LONG_MIN;
4707     }
4708   }
4709 
4710 }
4711 
db_type(long int idat)4712 long int db_type( long int idat )
4713 
4714 {
4715   long int data_number=0;
4716 
4717   data_number = labs(idat);
4718 
4719   return type[data_number];
4720 
4721 }
4722 
db_version(long int idat,long int version)4723 long int db_version( long int idat, long int version )
4724 
4725 {
4726   long int data_number=0, return_value=0;
4727 
4728   data_number = labs(idat);
4729   assert( version>=0 && version<MVERSION );
4730 
4731   if      ( version_all[data_number] )
4732     return_value = 1;
4733   else
4734     return_value = (version==VERSION_NORMAL);
4735 
4736   return return_value;
4737 }
4738 
db_version_copy(long int version_from,long int version_to)4739 void db_version_copy( long int version_from, long int version_to )
4740 
4741 {
4742   long int idat=0;
4743 
4744   for ( idat=0; idat<MDAT; idat++ ) {
4745     if ( version_all[idat] )
4746       db_version_copy_data( idat, version_from, version_to );
4747   }
4748 
4749 }
4750 
db_version_copy_data(long int idat,long int version_from,long int version_to)4751 void db_version_copy_data( long int idat, long int version_from, long int version_to )
4752 
4753 {
4754   long int max_from=0, max_to=0, max=0, n=0, *int_ptr_from=NULL, *int_ptr_to=NULL;
4755   double *dbl_ptr_from=NULL, *dbl_ptr_to=NULL;
4756 
4757   assert( version_all[idat] );
4758   assert( version_from>=0 && version_from<MVERSION );
4759   assert( version_to>=0 && version_to<MVERSION );
4760 
4761   db_max_index( idat, max_from, version_from, GET );
4762   db_max_index( idat, max_to, version_to, GET );
4763   if ( max_from>max_to )
4764     max = max_from;
4765   else
4766     max = max_to;
4767 
4768   if ( max_from>=0 ) {
4769     db_delete( idat, version_to );
4770     if ( db_type(idat)==INTEGER ) {
4771       int_ptr_from = db_int( idat, version_from );
4772       db_allocate( idat, max, version_to, MINIMAL );
4773       int_ptr_to = db_int( idat, version_to );
4774       n = (1+max_from)*db_data_length(idat);
4775       array_move( int_ptr_from, int_ptr_to, n );
4776     }
4777     else {
4778       assert( db_type(idat)==DOUBLE_PRECISION );
4779       dbl_ptr_from = db_dbl( idat, version_from );
4780       db_allocate( idat, max, version_to, MINIMAL );
4781       dbl_ptr_to = db_dbl( idat, version_to );
4782       n = (1+max_from)*db_data_length(idat);
4783       array_move( dbl_ptr_from, dbl_ptr_to, n );
4784     }
4785     db_max_index( idat, max, version_to, PUT );
4786   }
4787 
4788 }
4789 
db_version_delete(long int version)4790 void db_version_delete( long int version )
4791 
4792 {
4793   long int idat=0;
4794 
4795   assert( version>=0 && version<MVERSION );
4796   for ( idat=0; idat<MDAT; idat++ ) {
4797     if ( db_version(idat,version) ) db_delete( idat, version );
4798   }
4799 
4800 }
4801 
4802