00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #include <med.h>
00020 #include <med_config.h>
00021 #include <med_outils.h>
00022 #include <stdlib.h>
00023 #include <string.h>
00024
00025 #include <stdio.h>
00026
00027 #define nedfchac F77_FUNC(edfchac,EDFCHAC)
00028 #define nedfchae F77_FUNC(edfchae,EDFCHAE)
00029 #define nedfchal F77_FUNC(edfchal,EDFCHAL)
00030 #define nedfchai F77_FUNC(edfchai,EDFCHAI)
00031 #define nedfncha F77_FUNC(edfncha,EDFNCHA)
00032 #define nedfnref F77_FUNC(edfnref,EDFNREF)
00033 #define nedfnval F77_FUNC(edfnval,EDFNVAL)
00034 #define nedfnpdt F77_FUNC(edfnpdt,EDFNPDT)
00035 #define nedfpdti F77_FUNC(edfpdti,EDFPDTI)
00036 #define nedfrefi F77_FUNC(edfrefi,EDFREFI)
00037 #define nedfliee F77_FUNC(edfliee,EDFLIEE)
00038 #define nedfnlie F77_FUNC(edfnlie,EDFNLIE)
00039 #define nedfliei F77_FUNC(edfliei,EDFLIEI)
00040 #define nedfnvli F77_FUNC(edfnvli,EDFNVLI)
00041 #define nedfliel F77_FUNC(edfliel,EDFLIEL)
00042
00043
00044 #ifdef PPRO_NT
00045 med_int
00046 EDFCHAC(med_int *fid,char *cha, unsigned int bidon1,
00047 med_int *lon1, med_int *data_type, char *comp,
00048 unsigned int bidon2, med_int *lon2, char *unit,
00049 unsigned int bidon3, med_int *lon3, med_int *n_comp)
00050 #else
00051 med_int
00052 nedfchac(med_int *fid,char *cha,med_int *lon1,med_int *data_type,char *comp,
00053 med_int *lon2, char *unit,med_int *lon3,med_int *n_comp)
00054 #endif
00055 {
00056 med_int ret;
00057 char * fn1, *fn2, *fn3;
00058
00059 fn1 = _MED2cstring(cha, (int) * lon1);
00060 fn2 = _MED1cstring(comp, (int) * lon2,(int) *n_comp*MED_TAILLE_PNOM);
00061 fn3 = _MED1cstring(unit, (int) * lon3,(int) *n_comp*MED_TAILLE_PNOM);
00062
00063 if (!fn1 || !fn2 || !fn3)
00064 return(-1);
00065
00066 ret = (med_int) MEDchampCr((med_idt) *fid, fn1, (med_type_champ) *data_type,
00067 (char *)fn2,(char *)fn3, (med_int) *n_comp);
00068
00069 _MEDcstringFree(fn1);
00070 _MEDcstringFree(fn2);
00071 _MEDcstringFree(fn3);
00072
00073 return(ret);
00074 }
00075
00076 #ifdef PPRO_NT
00077 med_int
00078 EDFCHAE(med_int *fid, char *maa, unsigned int bidon1, med_int *lon1,
00079 char *cha, unsigned int bidon2, med_int *lon2,
00080 med_int *val, med_int *interlace, med_int *n,
00081 char *locname,unsigned int bidon5, med_int *lon5,
00082 med_int *numco,
00083 char *profil, unsigned int bidon3, med_int *lon3, med_int *pflmod,
00084 med_int *type_ent, med_int *type_geo,
00085 med_int *numdt, char *dt_unit, unsigned int bidon4, med_int *lon4,
00086 med_float *dt, med_int *numo)
00087 #else
00088 med_int
00089 nedfchae(med_int *fid, char *maa, med_int *lon1,
00090 char *cha, med_int *lon2,
00091 med_int *val, med_int *interlace, med_int *n,
00092 char *locname, med_int *lon5, med_int *numco,
00093 char *profil, med_int *lon3,med_int *pflmod,
00094 med_int *type_ent, med_int *type_geo,
00095 med_int *numdt, char *dt_unit, med_int *lon4,
00096 med_float *dt, med_int *numo)
00097 #endif
00098 {
00099 #ifdef _DEBUG_
00100 int i;
00101 #endif
00102 med_int ret;
00103 char *fn1, *fn2, *fn3, *fn4, *fn5;
00104
00105 fn1 = _MED2cstring(maa, (int) * lon1);
00106 fn2 = _MED2cstring(cha, (int) * lon2);
00107 fn3 = _MED2cstring(profil, (int) * lon3);
00108 fn4 = _MED2cstring(dt_unit, (int) * lon4);
00109 fn5 = _MED2cstring(locname, (int) * lon5);
00110
00111 if ( !fn1 || !fn2 || !fn3 || !fn4 || !fn5 )
00112 return(-1);
00113
00114
00115 if (!strcmp(fn3,MED_NOPFLi)) {
00116 _MEDcstringFree(fn3);
00117 fn3 = "";
00118 }
00119
00120 if (!strcmp(fn5,MED_NOGAUSSi)) {
00121 _MEDcstringFree(fn5);
00122 fn5 = "";
00123 }
00124
00125 #ifdef _DEBUG_
00126 printf(" - Valeur de numo : |%d|\n", *numo);
00127 printf(" - Valeur de fid : |%d|\n", *fid);
00128 printf(" - Valeur de maillage : |%s|\n", fn1);
00129 printf(" - Valeur de champ : |%s|\n", fn2);
00130 for (i=0; i < (*n)*2; i++ )
00131 printf(" - Valeur de val[%d]: |%f|\n", i, ( (double *) val)[i]);
00132 printf(" - Valeur de interlace: |%d|\n", *interlace);
00133 printf(" - Valeur de nbval : |%d|\n", *n);
00134 printf(" - Valeur de numco : |%d|\n", *numco);
00135 printf(" - Valeur de profil : |%s|\n", fn3);
00136 printf(" - Valeur de type_ent : |%d|\n", *type_ent);
00137 printf(" - Valeur de type_geo : |%d|\n", *type_geo);
00138 printf(" - Valeur de numdt : |%d|\n", *numdt);
00139 printf(" - Valeur de dt_unit : |%s|\n", fn4);
00140 printf(" - Valeur de de : |%f|\n", *dt);
00141 printf(" - Valeur de numo : |%d|\n", *numo);
00142 fflush(stdout);
00143 #endif
00144
00145 ret = (int) MEDchampEcr((med_idt) *fid,(char *)fn1,
00146 (char *) fn2, (void *) val,
00147 (med_mode_switch) *interlace, (med_int) *n,
00148 (char *) fn5,
00149 (med_int) *numco, (char *) fn3, ( med_mode_profil ) *pflmod,
00150 (med_entite_maillage) *type_ent,
00151 (med_geometrie_element) *type_geo,
00152 (med_int) *numdt,
00153 (char *) fn4,
00154 (med_float) *dt,
00155 (med_int) *numo );
00156
00157
00158
00159 _MEDcstringFree(fn1);
00160 _MEDcstringFree(fn2);
00161 _MEDcstringFree(fn4);
00162
00163 if (fn3)
00164 _MEDcstringFree(fn3);
00165
00166 if (fn5)
00167 _MEDcstringFree(fn5);
00168
00169 return(ret);
00170 }
00171
00172 #ifdef PPRO_NT
00173 med_int
00174 EDFCHAL(med_int *fid, char *maa, unsigned int bidon1, med_int *lon1,
00175 char *cha, unsigned int bidon2, med_int *lon2, med_int *val,
00176 med_int *interlace, med_int *numco,
00177 char * locname,unsigned int bidon4,
00178 char *profil, unsigned int bidon3, med_int * pflmod,
00179 med_int *type_ent, med_int *type_geo,
00180 med_int *numdt, med_int *numo)
00181 #else
00182 med_int
00183 nedfchal(med_int *fid, char *maa, med_int *lon1, char *cha, med_int *lon2,
00184 med_int *val,
00185 med_int *interlace,med_int *numco,
00186 char * locname, char *profil, med_int * pflmod,
00187 med_int *type_ent, med_int *type_geo,
00188 med_int *numdt, med_int *numo)
00189 #endif
00190 {
00191 med_int ret=-1;
00192 char * fn1, *fn2;
00193 char * fs3, *fs4;
00194
00195 fn1 = _MED2cstring(maa, (int) * lon1);
00196 fn2 = _MED2cstring(cha, (int) * lon2);
00197 fs3 = (char *) malloc(sizeof(char)*MED_TAILLE_NOM+1);
00198 fs4 = (char *) malloc(sizeof(char)*MED_TAILLE_NOM+1);
00199
00200
00201 if (!fn1 || !fn2 || !fs3|| !fs4) goto ERROR;
00202
00203 ret = (med_int) MEDchampLire((med_idt) *fid,
00204 (char *)fn1,(char *)fn2, (unsigned char *) val,
00205 (med_mode_switch) *interlace,
00206 (med_int) *numco,
00207 (char *) fs4,(char *) fs3,(med_mode_profil) *pflmod,
00208 (med_entite_maillage) *type_ent,
00209 (med_geometrie_element) *type_geo,
00210 (med_int) *numdt, (med_int ) *numo);
00211
00212 if (! strcmp(fs3,MED_NOPFL))
00213 strncpy(profil,MED_NOM_BLANC,MED_TAILLE_NOM);
00214 else {
00215 strncpy(profil,fs3,MED_TAILLE_NOM);
00216 _MEDfstring(profil,MED_TAILLE_NOM);
00217 }
00218
00219 if (! strcmp(fs4,MED_NOGAUSS))
00220 strncpy(locname,MED_NOM_BLANC,MED_TAILLE_NOM);
00221 else {
00222 strncpy(locname,fs4,MED_TAILLE_NOM);
00223 _MEDfstring(locname,MED_TAILLE_NOM);
00224 }
00225
00226 ret = 0;
00227
00228 ERROR:
00229
00230 _MEDcstringFree(fn1);
00231 _MEDcstringFree(fn2);
00232 free(fs3);
00233 free(fs4);
00234
00235 return(ret);
00236 }
00237
00238 #ifdef PPRO_NT
00239 med_int
00240 EDFCHAI(med_int *fid, med_int *ind, char *cha, unsigned int bidon1,
00241 med_int *data_type, char *comp, unsigned int bidon2,
00242 char *unit, unsigned int bidon3, med_int *n_comp)
00243 #else
00244 med_int
00245 nedfchai(med_int *fid,med_int *ind,char *cha,
00246 med_int *data_type,
00247 char *comp,char *unit,
00248 med_int *n_comp)
00249 #endif
00250 {
00251 med_int ncomp;
00252 med_int ret;
00253 char *fs1,*fs2,*fs3;
00254 med_type_champ datatype;
00255
00256 ncomp = MEDnChamp((med_idt)*fid,(int)*ind);
00257
00258 fs1 = (char *) malloc(sizeof(char)*MED_TAILLE_NOM+1);
00259 fs2 = (char *) malloc(sizeof(char)*MED_TAILLE_PNOM*ncomp+1);
00260 fs3 = (char *) malloc(sizeof(char)*MED_TAILLE_PNOM*ncomp+1);
00261
00262 if (!(fs1&&fs2&&fs3))
00263 return -1;
00264
00265 ret = (med_int) MEDchampInfo((med_idt) *fid, (int)*ind, (char *)fs1,
00266 &datatype,
00267 (char *)fs2, (char *)fs3,(med_int )*n_comp);
00268
00269 *data_type = (med_int) datatype;
00270 strncpy(cha,fs1,MED_TAILLE_NOM);
00271 strncpy(comp,fs2,MED_TAILLE_PNOM*ncomp);
00272 strncpy(unit,fs3,MED_TAILLE_PNOM*ncomp);
00273 _MEDfstring(cha,MED_TAILLE_NOM);
00274 _MEDfstring(comp,MED_TAILLE_PNOM*ncomp);
00275 _MEDfstring(unit,MED_TAILLE_PNOM*ncomp);
00276 free(fs1);
00277 free(fs2);
00278 free(fs3);
00279
00280 return(ret);
00281 }
00282
00283 #ifdef PPRO_NT
00284 med_int
00285 EDFNCHA(med_int *fid, med_int *indice)
00286 #else
00287 med_int
00288 nedfncha(med_int *fid, med_int *indice)
00289 #endif
00290 {
00291 med_int ret;
00292
00293 ret = (med_int) MEDnChamp((med_idt) *fid, (int)*indice);
00294
00295 return(ret);
00296 }
00297
00298
00299 #ifdef PPRO_NT
00300 med_int
00301 EDFNREF(med_int *fid,
00302 char *cha, unsigned int bidon1, med_int *lon1,
00303 med_int *typ_ent, med_int *typ_geo,
00304 med_int *numdt, med_int *numo)
00305 #else
00306 med_int
00307 nedfnref(med_int *fid, char *cha,med_int *lon1,
00308 med_int *typ_ent,med_int *typ_geo,
00309 med_int *numdt, med_int *numo)
00310 #endif
00311 {
00312 med_int ret;
00313 char * fn1;
00314
00315 fn1 = _MED2cstring(cha, (int) * lon1);
00316
00317 if (!fn1)
00318 return(-1);
00319
00320 ret = (med_int) MEDnChampRef((med_idt) *fid, (char *)fn1,
00321 (med_entite_maillage) *typ_ent,
00322 (med_geometrie_element) *typ_geo,
00323 (med_int) *numdt, (med_int) *numo);
00324
00325 _MEDcstringFree(fn1);
00326
00327 return(ret);
00328 }
00329
00330 #ifdef PPRO_NT
00331 med_int
00332 EDFNVAL(med_int *fid,
00333 char *cha, unsigned int bidon1, med_int *lon1,
00334 med_int *typ_ent, med_int *typ_geo,
00335 med_int *numdt, med_int *numo,
00336 char * maa, unsigned int bidon2, med_int *lon2, med_int * pflmod)
00337 #else
00338 med_int
00339 nedfnval(med_int *fid, char *cha,med_int *lon1,
00340 med_int *typ_ent,med_int *typ_geo,
00341 med_int *numdt, med_int *numo,
00342 char * maa, unsigned int *lon2, med_int * pflmod)
00343 #endif
00344 {
00345 med_int ret;
00346 char * fn1;
00347 char * fn2;
00348
00349 fn1 = _MED2cstring(cha, (int) * lon1);
00350 fn2 = _MED2cstring(maa, (int) * lon2);
00351
00352 if (!fn1 || !fn2 )
00353 return(-1);
00354
00355 ret = (med_int) MEDnVal((med_idt) *fid, (char *)fn1,
00356 (med_entite_maillage) *typ_ent,
00357 (med_geometrie_element) *typ_geo,
00358 (med_int) *numdt, (med_int) *numo,(char *) fn2, (med_mode_profil) * pflmod);
00359
00360 _MEDcstringFree(fn1);
00361 _MEDcstringFree(fn2);
00362
00363 return(ret);
00364 }
00365
00366
00367
00368 #ifdef PPRO_NT
00369 med_int
00370 EDFNPDT(med_int *fid,char *cha, unsigned int bidon1, med_int *lon1,
00371 med_int * type_ent, med_int *type_geo)
00372 #else
00373 med_int
00374 nedfnpdt(med_int *fid,char *cha, med_int *lon1,
00375 med_int * type_ent, med_int *type_geo)
00376 #endif
00377 {
00378 med_int ret;
00379 char *fn1;
00380
00381 fn1 = _MED2cstring(cha, (int) *lon1);
00382
00383 if (!fn1)
00384 return(-1);
00385
00386 ret = (med_int) MEDnPasdetemps((med_idt) *fid,(char *) fn1,
00387 (med_entite_maillage) *type_ent,
00388 (med_geometrie_element) *type_geo);
00389
00390 _MEDcstringFree(fn1);
00391
00392 return (ret);
00393 }
00394
00395
00396 #ifdef PPRO_NT
00397 med_int
00398 EDFPDTI(med_int *fid, char *cha, unsigned int bidon1, med_int *lon1,
00399 med_int *type_ent, med_int *type_geo,
00400 med_int *indice,
00401 med_int *ngauss,
00402 med_int *numdt , med_int *numo,
00403 char *dt_unit, unsigned int bidon3,
00404 med_float *dt,
00405 char *maa, unsigned int bidon4,
00406 med_int* local, med_int * nmaa)
00407 #else
00408 med_int
00409 nedfpdti(med_int *fid,char *cha, med_int *lon1,
00410 med_int *type_ent, med_int *type_geo,
00411 med_int *indice,
00412 med_int *ngauss,
00413 med_int *numdt, med_int *numo,
00414 char *dt_unit, med_float *dt,
00415 char *maa, med_int* local, med_int * nmaa)
00416 #endif
00417 {
00418 med_int ret;
00419 char *fn1;
00420 char fs1[MED_TAILLE_NOM+1];
00421 char fs2[MED_TAILLE_PNOM+1];
00422 med_booleen _local=MED_FAUX;
00423
00424 fn1 = _MED2cstring(cha, (int) *lon1);
00425
00426 if (!fn1)
00427 return(-1);
00428
00429 ret = (med_int) MEDpasdetempsInfo((med_idt) *fid, (char *) fn1,
00430 (med_entite_maillage) *type_ent,
00431 (med_geometrie_element) *type_geo,(int) *indice,
00432 (med_int *) ngauss,
00433 (med_int *) numdt, (med_int *) numo,
00434 (char *) fs2 , (med_float *) dt,
00435 (char *) fs1, (med_booleen *) &_local, (med_int *) nmaa);
00436
00437 strncpy(maa, fs1,MED_TAILLE_NOM);
00438 _MEDfstring(maa,MED_TAILLE_NOM);
00439
00440 strncpy(dt_unit,fs2,MED_TAILLE_PNOM);
00441 _MEDfstring(dt_unit,MED_TAILLE_PNOM);
00442 *local = (med_int) _local;
00443
00444 _MEDcstringFree(fn1);
00445
00446 return (ret);
00447 }
00448
00449
00450 #ifdef PPRO_NT
00451 med_int
00452 EDFREFI(med_int *fid, char *cha, unsigned int bidon1, med_int *lon1,
00453 med_int *type_ent, med_int *type_geo,
00454 med_int *indice,
00455 med_int *numdt , med_int *numo,
00456 char *maa, unsigned int bidon4,
00457 med_int * local, med_int *ngauss)
00458 #else
00459 med_int
00460 nedfrefi(med_int *fid, char *cha, med_int *lon1,
00461 med_int *type_ent, med_int *type_geo,
00462 med_int *indice,
00463 med_int *numdt, med_int *numo,
00464 char *maa,
00465 med_int *local, med_int *ngauss)
00466 #endif
00467 {
00468 med_int ret;
00469 char *fn1;
00470 char fs1[MED_TAILLE_NOM+1];
00471 med_booleen _local=MED_FAUX;
00472
00473 fn1 = _MED2cstring(cha, (int) *lon1);
00474
00475 if (!fn1)
00476 return(-1);
00477
00478 ret = (med_int) MEDchampRefInfo((med_idt) *fid, (char *) fn1,
00479 (med_entite_maillage) *type_ent,
00480 (med_geometrie_element) *type_geo,(int) *indice,
00481 (med_int) *numdt, (med_int) *numo,
00482 (char *) fs1, (med_booleen *) &_local,(med_int *) ngauss);
00483
00484 strncpy(maa, fs1,MED_TAILLE_NOM);
00485 *local = (med_int) _local;
00486
00487 _MEDcstringFree(fn1);
00488
00489 return (ret);
00490 }
00491
00492
00493 #ifdef PPRO_NT
00494 med_int
00495 EDFLIEI(med_int *fid, med_int *indice, char *maa,
00496 unsigned int bidon, med_int *n)
00497 #else
00498 med_int
00499 nedfliei(med_int *fid,med_int *indice, char *maa,med_int *n)
00500 #endif
00501 {
00502 med_int ret;
00503 char fs1[MED_TAILLE_NOM+1];
00504
00505 ret = (med_int) MEDlienInfo((med_idt)*fid,(med_int) *indice, (char *) fs1,
00506 (med_int *) n);
00507
00508 strncpy(maa,fs1,MED_TAILLE_NOM);
00509 _MEDfstring(maa,MED_TAILLE_NOM);
00510
00511 return(ret);
00512 }
00513
00514
00515 #ifdef PPRO_NT
00516 med_int
00517 EDFNLIE(med_int *fid)
00518 #else
00519 med_int
00520 nedfnlie(med_int *fid)
00521 #endif
00522 {
00523 med_int ret;
00524
00525 ret = (med_int) MEDnLien((med_idt) *fid);
00526
00527 return(ret);
00528 }
00529
00530
00531 #ifdef PPRO_NT
00532 med_int
00533 EDFLIEE(med_int *fid, char *lienval, unsigned int bidon0, med_int *lon0,
00534 char *maa, unsigned int bidon1, med_int *lon1)
00535 #else
00536 med_int
00537 nedfliee(med_int *fid, char *lienval, med_int *lon0, char *maa, med_int *lon1)
00538 #endif
00539 {
00540 med_int ret;
00541 char *fn0;
00542 char *fn1;
00543
00544 fn0 = _MED2cstring(lienval, (int) * lon0);
00545 fn1 = _MED2cstring(maa, (int) * lon1);
00546
00547 if (!fn0 || !fn1) return(-1);
00548
00549 ret = (med_int) MEDlienEcr((med_idt) *fid,(char *) fn0,(char *) fn1);
00550
00551 _MEDcstringFree(fn0);
00552 _MEDcstringFree(fn1);
00553
00554 return (ret);
00555 }
00556
00557
00558
00559
00560 #ifdef PPRO_NT
00561 med_int
00562 EDFNVLI(med_int *fid,char *maa, unsigned int bidon1, med_int *lon1)
00563 #else
00564 med_int
00565 nedfnvli(med_int *fid ,char *maa, med_int *lon1)
00566 #endif
00567 {
00568 med_int ret;
00569 char *fn1;
00570
00571 fn1 = _MED2cstring(maa, (int) * lon1);
00572
00573 if (!fn1)
00574 return(-1);
00575
00576 ret = (med_int) MEDnValLien((med_idt) *fid,(char *)fn1);
00577
00578 _MEDcstringFree(fn1);
00579
00580 return (ret);
00581 }
00582
00583
00584 #ifdef PPRO_NT
00585 med_int
00586 EDFLIEL(med_int *fid, char *lienval,unsigned int bidon0, med_int *n,
00587 char *maa,unsigned int bidon1, med_int *lon1)
00588 #else
00589 med_int
00590 nedfliel(med_int *fid, char *lienval, med_int *n,
00591 char *maa, med_int *lon1)
00592 #endif
00593 {
00594 med_int ret;
00595 char *fn1;
00596 char *fs1;
00597
00598 fs1 = (char *) malloc(sizeof(char)*(*n)+1);
00599 fn1 = _MED2cstring(maa, (int) * lon1);
00600
00601 if (!(fs1&&fn1)) return(-1);
00602
00603 ret = (med_int) MEDlienLire((med_idt) *fid,(char *) fs1,
00604 (char *)fn1);
00605
00606 strncpy(lienval,fs1,*n);
00607 free(fs1);
00608
00609 _MEDcstringFree(fn1);
00610
00611 return (ret);
00612 }
00613
00614
00615
00616
00617