MED fichier
medstructelementcf.c
Aller à la documentation de ce fichier.
1 /* This file is part of MED.
2  *
3  * COPYRIGHT (C) 1999 - 2016 EDF R&D, CEA/DEN
4  * MED is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * MED is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with MED. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 
19 #include <med.h>
20 #include "med_config.h"
21 #include "med_outils.h"
22 #include <string.h>
23 #include <stdlib.h>
24 
25 /*
26 From Fortran call of following C functions :
27 - MEDstructElementCr
28 - MEDnStructElement
29 - MEDstructElementInfo
30 - MEDstructElementInfoByName
31 - MEDstructElementName.c
32 - MEDstructElementGeotype
33 - MEDstructElementVarAttCr
34 - MEDstructElementVarAttInfoByName
35 - MEDstructElementVarAttInfo
36 - MEDstructElementAttSizeof
37 - MEDstructElementConstAttWr
38 - MEDstructElementConstAttWithProfileWr
39 - MEDstructElementConstAttInfoByName
40 - MEDstructElementConstAttInfo
41 - MEDstructElementConstAttRd
42 */
43 
44 
45 #define nmsefcre F77_FUNC(msefcre,MSEFCRE)
46 #define nmsefnse F77_FUNC(msefnse,MSEFNSE)
47 #define nmsefsei F77_FUNC(msefsei,MSEFSEI)
48 #define nmsefsin F77_FUNC(msefsin,MSEFSIN)
49 #define nmsefsen F77_FUNC(msefsen,MSEFSEN)
50 #define nmsefsgt F77_FUNC(msefsgt,MSEFSGT)
51 #define nmsefvac F77_FUNC(msefvac,MSEFVAC)
52 #define nmsefvni F77_FUNC(msefvni,MSEFVNI)
53 #define nmsefvai F77_FUNC(msefvai,MSEFVAI)
54 #define nmsefasz F77_FUNC(msefasz,MSEFASZ)
55 #define nmsefraw F77_FUNC(msefraw,MSEFRAW)
56 #define nmsefiaw F77_FUNC(msefiaw,MSEFIAW)
57 #define nmsefsaw F77_FUNC(msefsaw,MSEFSAW)
58 #define nmsefrpw F77_FUNC(msefrpw,MSEFRPW)
59 #define nmsefipw F77_FUNC(msefipw,MSEFIPW)
60 #define nmsefspw F77_FUNC(msefspw,MSEFSPW)
61 #define nmsefcni F77_FUNC(msefcni,MSEFCNI)
62 #define nmsefcai F77_FUNC(msefcai,MSEFCAI)
63 #define nmsefrar F77_FUNC(msefrar,MSEFRAR)
64 #define nmsefiar F77_FUNC(msefiar,MSEFIAR)
65 #define nmsefsar F77_FUNC(msefsar,MSEFSAR)
66 
67 
68 #ifdef PPRO_NT
69 med_int
70 MSEFCRE(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
71  med_int * mdim,
72  char *smname, unsigned int bidon2, med_int *smnamelen,
73  med_int *setype, med_int *sgtype)
74 #else
75 med_int
77  char *mname, med_int *mnamelen,
78  med_int * mdim,
79  char *smname, med_int *smnamelen,
80  med_int *setype,
81  med_int *sgtype)
82 #endif
83 {
84  med_int _ret;
85  char *_fn1, *_fn2;
86  med_entity_type _setype = (med_entity_type) *setype;
87  med_geometry_type _sgtype = (med_geometry_type) *sgtype;
88 
89 
90  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
91  if (!_fn1)
92  return(-1);
93  _fn2 = _MED2cstring((char *) smname, (int) *smnamelen);
94  if (!_fn2)
95  return(-1);
96 
97  _ret = (med_int) MEDstructElementCr((const med_idt) *fid,
98  _fn1,
99  (const med_int) *mdim,
100  _fn2,
101  _setype,
102  _sgtype);
103 
104  _MEDcstringFree(_fn1);
105  _MEDcstringFree(_fn2);
106 
107  return _ret;
108 }
109 
110 
111 
112 #ifdef PPRO_NT
113 med_int
114 MSEFNSE(med_int *fid)
115 #else
116 med_int
118 #endif
119 {
120  med_int _ret;
121 
122  _ret = (med_int) MEDnStructElement((const med_idt) *fid);
123 
124  return(_ret);
125 }
126 
127 
128 #ifdef PPRO_NT
129 med_int
130 MSEFSEI(med_int *fid, med_int *it,
131  char *mname, unsigned int bidon1,
132  med_int *mgtype, med_int * mdim,
133  char *smname, unsigned int bidon2,
134  med_int *setype, med_int *snnode, med_int *sncell,
135  med_int *sgtype, med_int *ncatt, med_int *ap,
136  med_int *nvatt)
137 #else
138 med_int
140  char *mname,
141  med_int *mgtype, med_int * mdim,
142  char *smname,
143  med_int *setype, med_int *snnode, med_int *sncell,
144  med_int *sgtype, med_int *ncatt, med_int *ap,
145  med_int *nvatt)
146 #endif
147 {
148  med_int _ret;
149  char _fs1[MED_NAME_SIZE+1]="";
150  char _fs2[MED_NAME_SIZE+1]="";
151  med_entity_type _setype;
152  med_geometry_type _mgeotype;
153  med_geometry_type _sgtype;
154  med_bool _ap;
155 
156 
157  _ret = (med_int) MEDstructElementInfo((const med_idt) *fid,
158  (med_int) *it,
159  _fs1,
160  &_mgeotype,
161  (med_int *) mdim,
162  _fs2,
163  &_setype,
164  (med_int *) snnode,
165  (med_int *) sncell,
166  &_sgtype,
167  (med_int *) ncatt,
168  &_ap,
169  (med_int *) nvatt);
170 
171  _MEDc2fString(_fs1,mname,MED_NAME_SIZE);
172  _MEDc2fString(_fs2,smname,MED_NAME_SIZE);
173  *mgtype = (med_int) _mgeotype;
174  *setype = (med_int) _setype;
175  *sgtype = (med_int) _sgtype;
176  *ap = (med_int) _ap;
177 
178  return _ret;
179 }
180 
181 
182 #ifdef PPRO_NT
183 med_int
184 MSEFSIN(med_int *fid,
185  char *mname, unsigned int bidon1, med_int *mnamelen,
186  med_int *mgtype, med_int * mdim,
187  char *smname, unsigned int bidon2,
188  med_int *setype, med_int *snnode, med_int *sncell,
189  med_int *sgtype, med_int *ncatt, med_int *ap,
190  med_int *nvatt)
191 #else
192 med_int
194  char *mname, med_int *mnamelen,
195  med_int *mgtype, med_int * mdim,
196  char *smname,
197  med_int *setype, med_int *snnode, med_int *sncell,
198  med_int *sgtype, med_int *ncatt, med_int *ap,
199  med_int *nvatt)
200 #endif
201 {
202  med_int _ret;
203  char *_fn1;
204  char _fs2[MED_NAME_SIZE+1]="";
205  med_entity_type _setype;
206  med_geometry_type _mgeotype;
207  med_geometry_type _sgtype;
208  med_bool _ap;
209 
210  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
211  if (!_fn1)
212  return(-1);
213 
214  _ret = (med_int) MEDstructElementInfoByName((const med_idt) *fid,
215  _fn1,
216  &_mgeotype,
217  (med_int *) mdim,
218  _fs2,
219  &_setype,
220  (med_int *) snnode,
221  (med_int *) sncell,
222  &_sgtype,
223  (med_int *) ncatt,
224  &_ap,
225  (med_int *) nvatt);
226 
227  _MEDc2fString(_fs2,smname,MED_NAME_SIZE);
228  *mgtype = (med_int) _mgeotype;
229  *setype = (med_int) _setype;
230  *sgtype = (med_int) _sgtype;
231  *ap = (med_int) _ap;
232 
233  _MEDcstringFree(_fn1);
234 
235  return _ret;
236 }
237 
238 
239 
240 #ifdef PPRO_NT
241 med_int
242 MSEFSEN(med_int *fid, med_int *mgtype, char *mname, unsigned int bidon)
243 #else
244 med_int
245 nmsefsen(med_int *fid, med_int *mgtype, char *mname)
246 #endif
247 {
248  med_int _ret;
249  char _fs1[MED_NAME_SIZE+1]="";
250  med_geometry_type _mgtype = (med_geometry_type) *mgtype;
251 
252 
253  _ret = (med_int) MEDstructElementName((const med_idt) *fid,
254  _mgtype,
255  _fs1);
256 
257  _MEDc2fString(_fs1,mname,MED_NAME_SIZE);
258 
259  return _ret;
260 }
261 
262 
263 
264 #ifdef PPRO_NT
265 med_int
266 MSEFSGT(med_int *fid, char *mname, unsigned int bidon,med_int *mnamelen)
267 #else
268 med_int
269 nmsefsgt(med_int *fid, char *mname, med_int *mnamelen)
270 #endif
271 {
272  med_int _ret;
273  char *_fn1;
274 
275  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
276  if (!_fn1)
277  return(-1);
278 
279  _ret = (med_int) MEDstructElementGeotype((const med_idt) *fid,
280  _fn1);
281 
282  _MEDcstringFree(_fn1);
283 
284  return(_ret);
285 }
286 
287 
288 
289 #ifdef PPRO_NT
290 med_int
291 MSEFVAC(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
292  char *aname, unsigned int bidon2, med_int *anamelen,
293  med_int *atype, med_int *anc)
294 #else
295 med_int
296 nmsefvac(med_int *fid, char *mname, med_int *mnamelen,
297  char *aname, med_int *anamelen,
298  med_int *atype, med_int *anc)
299 #endif
300 {
301  med_int _ret;
302  char *_fn1, *_fn2;
303  med_attribute_type _atype = (med_attribute_type) *atype;
304 
305  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
306  if (!_fn1)
307  return(-1);
308 
309  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
310  if (!_fn2)
311  return(-1);
312 
313  _ret = (med_int) MEDstructElementVarAttCr((const med_idt) *fid,
314  _fn1,
315  _fn2,
316  _atype,
317  (med_int) *anc);
318 
319  _MEDcstringFree(_fn1);
320  _MEDcstringFree(_fn2);
321 
322  return _ret;
323 }
324 
325 
326 #ifdef PPRO_NT
327 med_int
328 MSEFVNI(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
329  char *aname, unsigned int bidon2, med_int *anamelen,
330  med_int *atype, med_int *anc)
331 #else
332 med_int
333 nmsefvni(med_int *fid, char *mname, med_int *mnamelen,
334  char *aname, med_int *anamelen,
335  med_int *atype, med_int *anc)
336 #endif
337 {
338  med_int _ret;
339  char *_fn1, *_fn2;
340  med_attribute_type _atype;
341 
342  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
343  if (!_fn1)
344  return(-1);
345 
346  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
347  if (!_fn2)
348  return(-1);
349 
350  _ret = (med_int) MEDstructElementVarAttInfoByName((const med_idt) *fid,
351  _fn1,
352  _fn2,
353  &_atype,
354  (med_int *) anc);
355 
356  *atype = (med_int) _atype;
357 
358  _MEDcstringFree(_fn1);
359  _MEDcstringFree(_fn2);
360 
361  return _ret;
362 }
363 
364 
365 #ifdef PPRO_NT
366 med_int
367 MSEFVAI(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
368  med_int *it, char *aname, unsigned int bidon2,
369  med_int *atype, med_int *anc)
370 #else
371 med_int
372 nmsefvai(med_int *fid, char *mname, med_int *mnamelen, med_int *it,
373  char *aname, med_int *atype, med_int *anc)
374 #endif
375 {
376  med_int _ret;
377  char *_fn1;
378  char _fs1[MED_NAME_SIZE+1]="";
379  med_attribute_type _atype;
380 
381  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
382  if (!_fn1)
383  return(-1);
384 
385  _ret = (med_int) MEDstructElementVarAttInfo((const med_idt) *fid,
386  _fn1,
387  (med_int) *it,
388  _fs1,
389  &_atype,
390  (med_int *) anc);
391 
392  *atype = (med_int) _atype;
393  _MEDc2fString(_fs1,aname,MED_NAME_SIZE);
394 
395  _MEDcstringFree(_fn1);
396 
397  return _ret;
398 }
399 
400 
401 #ifdef PPRO_NT
402 med_int
403 MSEFASZ(med_int *atype)
404 #else
405 med_int
407 #endif
408 {
409  med_int _ret;
410  med_attribute_type _atype = (med_attribute_type) *atype;
411 
412  _ret = (med_int) MEDstructElementAttSizeof(_atype);
413 
414  return(_ret);
415 }
416 
417 
418 #ifdef PPRO_NT
419 med_int
420 MSEFRAW(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
421  char *aname, unsigned int bidon2, med_int *anamelen,
422  med_int *atype, med_int *anc,
423  med_int *setype, med_float *val)
424 #else
425 med_int
426 nmsefraw(med_int *fid, char *mname, med_int *mnamelen,
427  char *aname, med_int *anamelen,
428  med_int *atype, med_int *anc,
429  med_int *setype, med_float *val)
430 #endif
431 {
432  med_int _ret;
433  char *_fn1, *_fn2;
434  med_attribute_type _atype = (med_attribute_type) *atype;
435  med_entity_type _setype = (med_entity_type) *setype;
436 
437  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
438  if (!_fn1)
439  return(-1);
440 
441  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
442  if (!_fn2)
443  return(-1);
444 
445  _ret = (med_int) MEDstructElementConstAttWr((const med_idt) *fid,
446  _fn1,
447  _fn2,
448  _atype,
449  (med_int) *anc,
450  _setype,
451  (void *) val);
452 
453  _MEDcstringFree(_fn1);
454  _MEDcstringFree(_fn2);
455 
456  return _ret;
457 }
458 
459 
460 #ifdef PPRO_NT
461 med_int
462 MSEFIAW(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
463  char *aname, unsigned int bidon2, med_int *anamelen,
464  med_int *atype, med_int *anc,
465  med_int *setype, med_int *val)
466 #else
467 med_int
468 nmsefiaw(med_int *fid, char *mname, med_int *mnamelen,
469  char *aname, med_int *anamelen,
470  med_int *atype, med_int *anc,
471  med_int *setype, med_int *val)
472 #endif
473 {
474  med_int _ret;
475  char *_fn1, *_fn2;
476  med_attribute_type _atype = (med_attribute_type) *atype;
477  med_entity_type _setype = (med_entity_type) *setype;
478 
479  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
480  if (!_fn1)
481  return(-1);
482 
483  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
484  if (!_fn2)
485  return(-1);
486 
487  _ret = (med_int) MEDstructElementConstAttWr((const med_idt) *fid,
488  _fn1,
489  _fn2,
490  _atype,
491  (med_int) *anc,
492  _setype,
493  (void *) val);
494 
495  _MEDcstringFree(_fn1);
496  _MEDcstringFree(_fn2);
497 
498  return _ret;
499 }
500 
501 
502 
503 #ifdef PPRO_NT
504 med_int
505 MSEFSAW(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
506  char *aname, unsigned int bidon2, med_int *anamelen,
507  med_int *atype, med_int *anc, med_int *setype,
508  char *val, unsigned int bidon3, med_int *vallen)
509 #else
510 med_int
511 nmsefsaw(med_int *fid, char *mname, med_int *mnamelen,
512  char *aname, med_int *anamelen,
513  med_int *atype, med_int *anc, med_int *setype,
514  char *val, med_int *vallen)
515 #endif
516 {
517  med_int _ret;
518  char *_fn1, *_fn2,*_fn3;
519  med_attribute_type _atype = (med_attribute_type) *atype;
520  med_entity_type _setype = (med_entity_type) *setype;
521  int _nentity=0;
522  med_geometry_type _geotype=0;
523  med_int _modeldim=0;
524  char _supportmeshname[MED_NAME_SIZE+1]="";
525  med_entity_type _entitytype=0;
526  med_int _nnode=0;
527  med_int _ncell=0;
528  med_geometry_type _sgeotype=0;
529  med_int _nconstatt=0;
530  med_bool _anyprofile=0;
531  med_int _nvaratt=0;
532  med_bool _coordinatechangement=MED_FALSE;
533  med_bool _geotransformation=MED_FALSE;
534 
535  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
536  if (!_fn1)
537  return(-1);
538 
539  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
540  if (!_fn2)
541  return(-1);
542 
543  /* on recupere le nom du maillage support */
544  _ret = MEDstructElementInfoByName((med_idt) *fid,
545  _fn1,
546  &_geotype,
547  &_modeldim,
548  _supportmeshname,
549  &_entitytype,
550  &_nnode,
551  &_ncell,
552  &_sgeotype,
553  &_nconstatt,
554  &_anyprofile,
555  &_nvaratt);
556  if (_ret < 0)
557  return (-1);
558 
559  /* on recupere le nombre d'entite dans le maillage support :
560  MED_NODE ou MED_CELL */
561  _nentity = MEDmeshnEntity((med_idt) *fid,
562  _supportmeshname,
563  MED_NO_DT,
564  MED_NO_IT,
565  _setype,
566  _sgeotype,
568  MED_NO_CMODE,
569  &_coordinatechangement,
570  &_geotransformation);
571  if (_nentity < 0)
572  return (-1);
573 
574  _fn3 = _MED1cstring((char *) val, (int) *vallen*_nentity, (int) *anc*_nentity*MED_NAME_SIZE);
575  if (!_fn3)
576  return(-1);
577 
578  _ret = (med_int) MEDstructElementConstAttWr((const med_idt) *fid,
579  _fn1,
580  _fn2,
581  _atype,
582  (med_int) *anc,
583  _setype,
584  (void *) _fn3);
585 
586  _MEDcstringFree(_fn1);
587  _MEDcstringFree(_fn2);
588  _MEDcstringFree(_fn3);
589 
590  return _ret;
591 }
592 
593 
594 
595 #ifdef PPRO_NT
596 med_int
597 MSEFRPW(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
598  char *aname, unsigned int bidon2, med_int *anamelen,
599  med_int *atype, med_int *anc,
600  med_int *setype,
601  char *pname, unsigned int bidon3, med_int *pnamelen,
602  med_float *val)
603 #else
604 med_int
605 nmsefrpw(med_int *fid, char *mname, med_int *mnamelen,
606  char *aname, med_int *anamelen,
607  med_int *atype, med_int *anc,
608  med_int *setype,
609  char *pname, med_int *pnamelen,
610  med_float *val)
611 #endif
612 {
613  med_int _ret;
614  char *_fn1, *_fn2, *_fn3;
615  med_attribute_type _atype = (med_attribute_type) *atype;
616  med_entity_type _setype = (med_entity_type) *setype;
617 
618  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
619  if (!_fn1)
620  return(-1);
621 
622  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
623  if (!_fn2)
624  return(-1);
625 
626  _fn3 = _MED2cstring((char *) pname, (int) *pnamelen);
627  if (!_fn3)
628  return(-1);
629 
631  _fn1,
632  _fn2,
633  _atype,
634  (med_int) *anc,
635  _setype,
636  _fn3,
637  (void *) val);
638 
639  _MEDcstringFree(_fn1);
640  _MEDcstringFree(_fn2);
641  _MEDcstringFree(_fn3);
642 
643  return _ret;
644 }
645 
646 
647 
648 
649 #ifdef PPRO_NT
650 med_int
651 MSEFIPW(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
652  char *aname, unsigned int bidon2, med_int *anamelen,
653  med_int *atype, med_int *anc,
654  med_int *setype,
655  char *pname, unsigned int bidon3, med_int *pnamelen,
656  med_int *val)
657 #else
658 med_int
659 nmsefipw(med_int *fid, char *mname, med_int *mnamelen,
660  char *aname, med_int *anamelen,
661  med_int *atype, med_int *anc,
662  med_int *setype,
663  char *pname, med_int *pnamelen,
664  med_int *val)
665 #endif
666 {
667  med_int _ret;
668  char *_fn1, *_fn2, *_fn3;
669  med_attribute_type _atype = (med_attribute_type) *atype;
670  med_entity_type _setype = (med_entity_type) *setype;
671 
672  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
673  if (!_fn1)
674  return(-1);
675 
676  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
677  if (!_fn2)
678  return(-1);
679 
680  _fn3 = _MED2cstring((char *) pname, (int) *pnamelen);
681  if (!_fn3)
682  return(-1);
683 
685  _fn1,
686  _fn2,
687  _atype,
688  (med_int) *anc,
689  _setype,
690  _fn3,
691  (void *) val);
692 
693  _MEDcstringFree(_fn1);
694  _MEDcstringFree(_fn2);
695  _MEDcstringFree(_fn3);
696 
697  return _ret;
698 }
699 
700 
701 
702 #ifdef PPRO_NT
703 med_int
704 MSEFSPW(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
705  char *aname, unsigned int bidon2, med_int *anamelen,
706  med_int *atype, med_int *anc, med_int *setype,
707  char *pname, unsigned int bidon3, med_int *pnamelen,
708  char *val, unsigned int bidon4, med_int *vallen)
709 #else
710 med_int
711 nmsefspw(med_int *fid, char *mname, med_int *mnamelen,
712  char *aname, med_int *anamelen,
713  med_int *atype, med_int *anc, med_int *setype,
714  char *pname, med_int *pnamelen,
715  char *val, med_int *vallen)
716 #endif
717 {
718  med_int _ret;
719  char *_fn1, *_fn2,*_fn3, *_fn4;
720  med_attribute_type _atype = (med_attribute_type) *atype;
721  med_entity_type _setype = (med_entity_type) *setype;
722  int _nentity=0;
723  med_geometry_type _geotype=0;
724  med_int _modeldim=0;
725  char _supportmeshname[MED_NAME_SIZE+1]="";
726  med_entity_type _entitytype=0;
727  med_int _nnode=0;
728  med_int _ncell=0;
729  med_geometry_type _sgeotype=0;
730  med_int _nconstatt=0;
731  med_bool _anyprofile=0;
732  med_int _nvaratt=0;
733  med_bool _coordinatechangement=MED_FALSE;
734  med_bool _geotransformation=MED_FALSE;
735 
736  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
737  if (!_fn1)
738  return(-1);
739 
740  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
741  if (!_fn2)
742  return(-1);
743 
744  _fn3 = _MED2cstring((char *) pname, (int) *pnamelen);
745  if (!_fn3)
746  return(-1);
747 
748  /* on recupere le nom du maillage support */
749  _ret = MEDstructElementInfoByName((med_idt) *fid,
750  _fn1,
751  &_geotype,
752  &_modeldim,
753  _supportmeshname,
754  &_entitytype,
755  &_nnode,
756  &_ncell,
757  &_sgeotype,
758  &_nconstatt,
759  &_anyprofile,
760  &_nvaratt);
761  if (_ret < 0)
762  return (-1);
763 
764  /* on recupere le nombre d'entite dans le maillage support :
765  MED_NODE ou MED_CELL */
766  if (_setype == MED_NODE)
767  _nentity = MEDmeshnEntity((med_idt) *fid,
768  _supportmeshname,
769  MED_NO_DT,
770  MED_NO_IT,
771  _setype,
772  _sgeotype,
774  MED_NO_CMODE,
775  &_coordinatechangement,
776  &_geotransformation);
777  else
778  _nentity = MEDmeshnEntity((med_idt) *fid,
779  _supportmeshname,
780  MED_NO_DT,
781  MED_NO_IT,
782  _setype,
783  _sgeotype,
785  MED_NODAL,
786  &_coordinatechangement,
787  &_geotransformation);
788  if (_nentity < 0)
789  return (-1);
790 
791  _fn4 = _MED1cstring((char *) val, (int) *vallen*_nentity, (int) *anc*_nentity*MED_NAME_SIZE);
792  if (!_fn4)
793  return(-1);
794 
796  _fn1,
797  _fn2,
798  _atype,
799  (med_int) *anc,
800  _setype,
801  _fn3,
802  (void *) _fn4);
803 
804  _MEDcstringFree(_fn1);
805  _MEDcstringFree(_fn2);
806  _MEDcstringFree(_fn3);
807  _MEDcstringFree(_fn4);
808 
809 
810  return _ret;
811 }
812 
813 
814 #ifdef PPRO_NT
815 med_int
816 MSEFCNI(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
817  char *aname, unsigned int bidon2, med_int *anamelen,
818  med_int *atype, med_int *anc,
819  med_int *setype, char *pname, unsigned int bidon3, med_int *psize)
820 #else
821 med_int
822 nmsefcni(med_int *fid, char *mname, med_int *mnamelen,
823  char *aname, med_int *anamelen,
824  med_int *atype, med_int *anc,
825  med_int *setype, char *pname, med_int *psize)
826 #endif
827 {
828  med_int _ret;
829  char *_fn1, *_fn2;
830  med_attribute_type _atype;
831  med_entity_type _setype;
832  char _fs1[MED_NAME_SIZE+1]="";
833 
834  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
835  if (!_fn1)
836  return(-1);
837 
838  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
839  if (!_fn2)
840  return(-1);
841 
842  _ret = (med_int) MEDstructElementConstAttInfoByName((const med_idt) *fid,
843  _fn1,
844  _fn2,
845  &_atype,
846  (med_int *) anc,
847  &_setype,
848  _fs1,
849  (med_int *) psize);
850 
851  *atype = (med_int) _atype;
852  *setype = (med_int) _setype;
853  _MEDc2fString(_fs1,pname,MED_NAME_SIZE);
854 
855  _MEDcstringFree(_fn1);
856  _MEDcstringFree(_fn2);
857 
858  return _ret;
859 }
860 
861 
862 #ifdef PPRO_NT
863 med_int
864 MSEFCAI(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
865  med_int *it,
866  char *aname, unsigned int bidon2,
867  med_int *atype, med_int *anc,
868  med_int *setype, char *pname, unsigned int bidon3 ,med_int *psize)
869 #else
870 med_int
871 nmsefcai(med_int *fid, char *mname, med_int *mnamelen,
872  med_int *it,
873  char *aname,
874  med_int *atype, med_int *anc,
875  med_int *setype, char *pname, med_int *psize)
876 #endif
877 {
878  med_int _ret;
879  char *_fn1;
880  med_attribute_type _atype;
881  med_entity_type _setype;
882  char _fs1[MED_NAME_SIZE+1]="";
883  char _fs2[MED_NAME_SIZE+1]="";
884 
885 
886  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
887  if (!_fn1)
888  return(-1);
889 
890  _ret = (med_int) MEDstructElementConstAttInfo((const med_idt) *fid,
891  _fn1,
892  (med_int) *it,
893  _fs1,
894  &_atype,
895  (med_int *) anc,
896  &_setype,
897  _fs2,
898  (med_int *) psize);
899 
900  *atype = (med_int) _atype;
901  *setype = (med_int) _setype;
902  _MEDc2fString(_fs1,aname,MED_NAME_SIZE);
903  _MEDc2fString(_fs2,pname,MED_NAME_SIZE);
904 
905  _MEDcstringFree(_fn1);
906 
907  return _ret;
908 }
909 
910 
911 #ifdef PPRO_NT
912 med_int
913 MSEFRAR(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
914  char *aname, unsigned int bidon2, med_int *anamelen,
915  med_float *val)
916 #else
917 med_int
918 nmsefrar(med_int *fid, char *mname, med_int *mnamelen,
919  char *aname, med_int *anamelen,
920  med_float *val)
921 #endif
922 {
923  med_int _ret;
924  char *_fn1, *_fn2;
925 
926  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
927  if (!_fn1)
928  return(-1);
929 
930  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
931  if (!_fn2)
932  return(-1);
933 
934  _ret = (med_int) MEDstructElementConstAttRd((const med_idt) *fid,
935  _fn1,
936  _fn2,
937  (void *) val);
938 
939  _MEDcstringFree(_fn1);
940  _MEDcstringFree(_fn2);
941 
942  return _ret;
943 }
944 
945 
946 #ifdef PPRO_NT
947 med_int
948 MSEFIAR(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
949  char *aname, unsigned int bidon2, med_int *anamelen,
950  med_int *val)
951 #else
952 med_int
953 nmsefiar(med_int *fid, char *mname, med_int *mnamelen,
954  char *aname, med_int *anamelen,
955  med_int *val)
956 #endif
957 {
958  med_int _ret;
959  char *_fn1, *_fn2;
960 
961  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
962  if (!_fn1)
963  return(-1);
964 
965  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
966  if (!_fn2)
967  return(-1);
968 
969  _ret = (med_int) MEDstructElementConstAttRd((const med_idt) *fid,
970  _fn1,
971  _fn2,
972  (void *) val);
973 
974  _MEDcstringFree(_fn1);
975  _MEDcstringFree(_fn2);
976 
977  return _ret;
978 }
979 
980 
981 
982 #ifdef PPRO_NT
983 med_int
984 MSEFSAR(med_int *fid, char *mname, unsigned int bidon, med_int *mnamelen,
985  char *aname, unsigned int bidon2, med_int *anamelen,
986  char *val, unsigned int bidon3)
987 #else
988 med_int
989 nmsefsar(med_int *fid, char *mname, med_int *mnamelen,
990  char *aname, med_int *anamelen,
991  char *val)
992 #endif
993 {
994  med_int _ret;
995  char *_fn1, *_fn2;
996  char *_fs1;
997  med_entity_type _setype;
998  med_geometry_type _mgeotype, _gctype;
999  med_geometry_type _sgtype;
1000  med_int _mdim, _nnode, _ncell;
1001  char _meshname[MED_NAME_SIZE+1]="";
1002  char _pname[MED_NAME_SIZE+1]="";
1003  med_entity_type _etype;
1004  med_int _ncatt, _nvatt, _ncomp, _psize;
1005  med_bool _ap;
1006  med_attribute_type _type;
1007  int _size=0;
1008 
1009  _fn1 = _MED2cstring((char *) mname, (int) *mnamelen);
1010  if (!_fn1)
1011  return(-1);
1012 
1013  _fn2 = _MED2cstring((char *) aname, (int) *anamelen);
1014  if (!_fn2)
1015  return(-1);
1016 
1017  if (MEDstructElementInfoByName((med_idt) *fid,
1018  _fn1,
1019  &_mgeotype,
1020  &_mdim,
1021  _meshname,
1022  &_etype,
1023  &_nnode,
1024  &_ncell,
1025  &_gctype,
1026  &_ncatt,
1027  &_ap,
1028  &_nvatt) < 0)
1029  return -1;
1030 
1032  _fn1,
1033  _fn2,
1034  &_type,
1035  &_ncomp,
1036  &_setype,
1037  _pname,
1038  &_psize) < 0)
1039  return -1;
1040 
1041  if (_psize != 0)
1042  _size = _psize*_ncomp*MED_NAME_SIZE*sizeof(char);
1043  else
1044  if (_etype == MED_NODE)
1045  _size = _nnode*_ncomp*MED_NAME_SIZE*sizeof(char);
1046  else
1047  _size = _ncell*_ncomp*MED_NAME_SIZE*sizeof(char);
1048  _fs1 = (char *) malloc(_size+1);
1049  *_fs1='\0';
1050 
1051  _ret = (med_int) MEDstructElementConstAttRd((const med_idt) *fid,
1052  _fn1,
1053  _fn2,
1054  (void *) _fs1);
1055 
1056  _MEDc2fString(_fs1,val,_size);
1057  free(_fs1);
1058 
1059  _MEDcstringFree(_fn1);
1060  _MEDcstringFree(_fn2);
1061 
1062  return _ret;
1063 }
Definition: med.h:136
#define nmsefsen
#define nmsefsgt
#define nmsefrar
MEDC_EXPORT med_err MEDstructElementVarAttInfoByName(const med_idt fid, const char *const modelname, const char *const varattname, med_attribute_type *const varatttype, med_int *const ncomponent)
Cette routine décrit les caractéristiques d'un attribut variable de modèle d'élément de structure à p...
MEDC_EXPORT med_err _MEDcstringFree(char *chaine)
#define MED_NO_IT
Definition: med.h:299
MEDC_EXPORT med_int MEDnStructElement(const med_idt fid)
Cette routine renvoie le nombre de modèles d'éléments de structure.
MEDC_EXPORT med_geometry_type MEDstructElementGeotype(const med_idt fid, const char *const modelname)
Cette routine renvoie le type géométrique mgeotype associé au modèle d'éléments de structure de nom m...
MEDC_EXPORT med_err MEDstructElementInfo(const med_idt fid, const int mit, char *const modelname, med_geometry_type *const mgeotype, med_int *const modeldim, char *const supportmeshname, med_entity_type *const sentitytype, med_int *const snnode, med_int *const sncell, med_geometry_type *const sgeotype, med_int *const nconstantattribute, med_bool *const anyprofile, med_int *const nvariableattribute)
Cette routine décrit les caractéristiques d'un modèle d'élément de structure par itération.
#define nmsefsaw
#define nmsefcre
MEDC_EXPORT med_err MEDstructElementConstAttInfo(const med_idt fid, const char *const modelname, const int attit, char *const constattname, med_attribute_type *const constatttype, med_int *const ncomponent, med_entity_type *const sentitytype, char *const profilename, med_int *const profilesize)
Cette routine décrit les caractéristiques d'un attribut constant de modèle d'élément de structure par...
double med_float
Definition: med.h:314
MEDC_EXPORT med_err MEDstructElementVarAttInfo(const med_idt fid, const char *const modelname, const int attit, char *const varattname, med_attribute_type *const varatttype, med_int *const ncomponent)
Cette routine décrit les caractéristiques d'un attribut variable de modèle d'élément de structure par...
Definition: med.h:235
MEDC_EXPORT med_err MEDstructElementInfoByName(const med_idt fid, const char *const modelname, med_geometry_type *const mgeotype, med_int *const modeldim, char *const supportmeshname, med_entity_type *const sentitytype, med_int *const snnode, med_int *const sncell, med_geometry_type *const sgeotype, med_int *const nconstantatribute, med_bool *const anyprofile, med_int *const nvariableattribute)
Cette routine décrit les caractéristiques d'un modèle d'élément de structure à partir de son nom...
#define nmsefrpw
#define nmsefcai
#define nmsefiar
med_entity_type
Definition: med.h:136
#define nmsefipw
#define nmsefasz
#define nmsefiaw
#define nmsefsar
MEDC_EXPORT med_err MEDstructElementConstAttInfoByName(const med_idt fid, const char *const modelname, const char *const constattname, med_attribute_type *const constatttype, med_int *const ncomponent, med_entity_type *const sentitytype, char *const profilename, med_int *const profilesize)
Cette routine décrit les caractéristiques d'un attribut constant de modèle d'élément de structure à p...
int med_int
Definition: med.h:316
#define nmsefvai
MEDC_EXPORT char * _MED1cstring(char *chaine, int longueur_reelle, int longueur_fixee)
Definition: MED1cstring.c:37
MEDC_EXPORT med_err MEDstructElementConstAttWithProfileWr(const med_idt fid, const char *const modelname, const char *const constattname, const med_attribute_type constatttype, const med_int ncomponent, const med_entity_type sentitytype, const char *const profilename, const void *const value)
Cette routine définit un attribut caractéristique constant d'un modèle d'éléments de structure...
MEDC_EXPORT int MEDstructElementAttSizeof(med_attribute_type atttype)
Cette routine renvoie la taille en octets du type élémentaire atttype.
MEDC_EXPORT med_geometry_type MEDstructElementCr(const med_idt fid, const char *const modelname, const med_int modeldim, const char *const supportmeshname, const med_entity_type sentitytype, const med_geometry_type sgeotype)
Cette routine permet de créer un nouveau modèle d'éléments de structure dans un fichier MED...
MEDC_EXPORT med_err MEDstructElementConstAttWr(const med_idt fid, const char *const modelname, const char *const constattname, const med_attribute_type constatttype, const med_int ncomponent, const med_entity_type sentitytype, const void *const value)
Cette routine définit un attribut caractéristique constant d'un modèle d'éléments de structure...
#define nmsefnse
#define nmsefcni
MEDC_EXPORT med_err MEDstructElementConstAttRd(const med_idt fid, const char *const modelname, const char *const constattname, void *const value)
Cette routine lit la valeur d'un attribut caractéristique constant d'un modèle d'éléments de structur...
Definition: med.h:240
#define nmsefsin
MEDC_EXPORT med_err MEDstructElementName(const med_idt fid, const med_geometry_type mgeotype, char *const modelname)
Cette routine renvoie le nom du modèle d'éléments de structure associé au type mgeotype.
#define nmsefsei
MEDC_EXPORT med_err _MEDc2fString(const char *const chainec, char *const chainef, med_int longueur_buffer77)
#define MED_NO_DT
Definition: med.h:298
hid_t med_idt
Definition: med.h:309
#define MED_NAME_SIZE
Definition: med.h:74
MEDC_EXPORT med_err MEDstructElementVarAttCr(const med_idt fid, const char *const modelname, const char *const varattname, const med_attribute_type varatttype, const med_int ncomponent)
Cette routine déclare la présence d'un attribut caractéristique variable attaché aux éléments de type...
med_bool
Definition: med.h:240
#define nmsefvni
MEDC_EXPORT char * _MED2cstring(char *chaine, int longueur)
Definition: MED2cstring.c:35
int med_geometry_type
Definition: med.h:179
MEDC_EXPORT med_int MEDmeshnEntity(const med_idt fid, const char *const meshname, const med_int numdt, const med_int numit, const med_entity_type entitype, const med_geometry_type geotype, const med_data_type datatype, const med_connectivity_mode cmode, med_bool *const changement, med_bool *const transformation)
Cette routine permet de lire le nombre d'entités dans un maillage pour une séquence de calcul donnée...
med_attribute_type
Definition: med.h:158
#define nmsefvac
#define nmsefspw
#define nmsefraw