Aller à la documentation de ce fichier.
32 # define _Bool signed char
38 # define __bool_true_false_are_defined 1
57 #include <2.3.6/med23v30.h>
58 #include <2.3.6/med23v30_proto.h>
59 #include "2.3.6/med23v30_misc.h"
95 int MEDimport(
const char * filein,
const char * fileout) {
99 med_int majeur, mineur, release;
102 const char *_fileout;
105 bool hasfileout=
false;
111 int MAJ_21_22 = 0, MAJ_231_232 = 0, MAJ_236_300 = 0, MAJ_300_310 = 0, MAJ_310_320 = 0, MAJ_320_330 = 0, MAJ_400_410 = 0, MAJ_500_510 = 0 ;
113 char *drive, *dir, *ext;
115 unsigned char reponse=
'o';
118 EXIT_IF(filein == NULL,
"Le nom du fichier d'entrée est vide : ", filein);
120 hasfileout = strcmp(fileout,
"");
122 _fileoutsize = strlen(fileout);
126 tmp = (
char *) malloc(
sizeof(
char)*(_fileoutsize+1));
130 _splitpath( tmp, drive, dir, _fileout, ext );
132 _fileout = basename(tmp);
134 _fileoutsize = strlen(_fileout);
143 fprintf(stdout,
">>> Attention le fichier %s ne contient pas de numéro de version. \n",filein);
144 fprintf(stdout,
">>> Le fichier %s est supposé être en version 2.1.1. \n",filein);
148 if ( (reponse !=
'o') && (reponse !=
'O') && (reponse !=
'y') && (reponse !=
'Y') ) {
150 "Erreur d'appel de MEDfileCompatibility : ", filein);
155 "Le fichier d'entrée n'est pas dans un format HDF compatible : ", filein);
161 commande = (
char *) malloc(
sizeof(
char)*(strlen(
"cp ")+strlen(filein)+
162 strlen(
" ")+_fileoutsize + 4 +1 ) );
163 EXIT_IF(commande == NULL,NULL,NULL);
164 strcpy(commande,
"cp \"");
165 strcat(commande,filein);
166 strcat(commande,
"\" \"");
167 strcat(commande,_fileout);
168 strcat(commande,
"\"");
169 fprintf(stdout,
">>> Creation du fichier %s : %s \n",_fileout,commande);
172 commande = (
char *) malloc(
sizeof(
char)*(strlen(
"chmod u+w \"") + _fileoutsize +1 +1 ) );
173 EXIT_IF(commande == NULL,NULL,NULL);
174 strcpy(commande,
"chmod u+w \"");
175 strcat(commande,_fileout);
176 strcat(commande,
"\"");
177 fprintf(stdout,
">>> Chmod +w du fichier %s : %s \n",_fileout,commande);
183 EXIT_IF(fid < 0,
"Ouverture du fichier : ", _fileout);
195 EXIT_IF(ret < 0,
"Lecture du numero de version de MED-fichier",NULL);
196 if (strcmp(version,
"2_2_0") < 0)
198 if (strcmp(version,
"2_3_2") < 0)
200 if (strcmp(version,
"3_0_0") < 0)
202 if (strcmp(version,
"3_1_0") < 0)
204 if (strcmp(version,
"3_2_0") < 0)
206 if (strcmp(version,
"3_3_0") < 0)
208 if (strcmp(version,
"4_1_0") < 0)
210 if (strcmp(version,
"5_1_0") < 0)
226 fprintf(stdout,
">>> Lancement de la normalisation du fichier selon le format " PACKAGE_VERSION " ...\n");
232 fprintf(stdout,
"- Lancement de la mise à jour du numéro de version ... \n");
237 fprintf(stdout,
" Numéro de version : ... OK ... \n");
242 fprintf(stdout,
"- Lancement de la mise à jour des maillages (21_22)... \n");
244 fprintf(stdout,
" Maillage(s) : ... OK ...\n");
247 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (21_22)... \n");
249 fprintf(stdout,
" Champs(s) : ... OK ...\n");
252 nprofil = MEDnProfil(fid);
254 fprintf(stdout,
"- Lancement de la mise à jour des profils (21_22)... \n");
256 fprintf(stdout,
" Profils(s) : ... OK ...\n");
261 EXIT_IF(gid < 0,
"Creation du groupe HDF sur les profils",chemin_profils);
263 EXIT_IF(ret < 0,
"Fermeture du groupe HDF sur les profils",chemin_profils);
270 EXIT_IF(gid < 0,
"Creation du groupe HDF sur les liens",chemin_liens);
272 EXIT_IF(ret < 0,
"Fermeture du groupe HDF sur les liens",chemin_liens);
277 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (231_232)... \n");
279 fprintf(stdout,
" Champs(s) : ... OK ...\n");
280 fprintf(stdout,
"- Lancement de la mise à jour des noms de maillages (231_232)... \n");
282 fprintf(stdout,
" Noms(s) de maillage(s): ... OK ...\n");
291 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (236_300)... \n");
293 fprintf(stdout,
" Champs(s) : ... OK ...\n");
297 fprintf(stdout,
"- Lancement de la mise à jour des maillages (236_300)... \n");
299 fprintf(stdout,
" Maillage(s): ... OK ...\n");
315 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (300_310) ... \n");
317 fprintf(stdout,
" Champs(s) : ... OK ...\n");
332 fprintf(stdout,
"- Lancement de la mise à jour des familles/groupes (310_320) ... \n");
334 fprintf(stdout,
" Famille(s)/Groupe(s) : ... OK ...\n");
347 fprintf(stdout,
"- Lancement de la mise à jour des champs entiers (321_330) ... \n");
349 fprintf(stdout,
" Champs entiers : ... OK ...\n");
361 fprintf(stdout,
"- Lancement de la mise à jour des meta-données sur les champs (400_410) ... \n");
363 fprintf(stdout,
" Champs meta-data : ... OK ...\n");
375 fprintf(stdout,
"- Lancement de la mise à jour des meta-données sur les datasets (500_510) ... \n");
377 fprintf(stdout,
" datasets meta-data : ... OK ...\n");
389 EXIT_IF(ret < 0,
"Fermeture du fichier",_fileout);
392 fprintf(stdout,
">>> Conversion du fichier %s au format MED V" PACKAGE_VERSION " terminée\n",
396 if (!hasfileout) free(tmp);
MEDC_EXPORT med_file_version _MEDfileVersion(const med_idt oid)
void MAJ_21_22_profils(med_idt fid, med_int nprofil)
void MAJ_write_version_num(med_idt fid, const int majeur, const int mineur, const int release)
void MAJ_310_320_familles(med_idt fid)
void MAJ_236_300_champs(med_idt fid)
void MAJ_300_310_champs(med_idt fid)
void MAJ_500_510_dataset_attr_ILC(med_idt fid)
void MAJ_320_330_champs(med_idt fid)
MEDC_EXPORT med_err MEDfileClose(med_idt fid)
Fermeture d'un fichier MED.
#define MED_PROFILE_GRP_SIZE
void MAJ_version_num(med_idt fid, const int majeur, const int mineur, const int release)
MEDC_EXPORT med_err MEDfileCompatibility(const char *const filename, med_bool *const hdfok, med_bool *const medok)
Vérification de la compatibilité d'un fichier avec HDF et MED.
void MAJ_21_22_maillages(med_idt fid)
void MAJ_231_232_champs(med_idt fid)
MEDC_EXPORT med_err _MEDdatagroupFermer(med_idt id)
MEDC_EXPORT med_idt _MEDdatagroupCreer(med_idt pid, const char *const nom)
void MAJ_400_410_champs(med_idt fid)
MEDC_EXPORT med_err MEDfileNumVersionRd(const med_idt fid, med_int *const major, med_int *const minor, med_int *const release)
Lecture du numéro de version de la bibliothèque MED utilisée pour créer le fichier.
int MEDimport(const char *filein, const char *fileout)
void MAJ_231_232_maillages(med_idt fid)
void MAJ_21_22_champs(med_idt fid)
void MAJ_236_300_maillages(med_idt fid)
MEDC_EXPORT med_idt MEDfileOpen(const char *const filename, const med_access_mode accessmode)
Ouverture d'un fichier MED.
void MAJ_version(med_idt fid)
MEDC_EXPORT void _MEDmodeErreurVerrouiller(void)
#define EXIT_IF(expression, message, arg)