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"
94 int MEDimport(
const char * filein,
const char * fileout) {
98 med_int majeur, mineur, release;
101 const char *_fileout;
104 bool hasfileout=
false;
110 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 ;
112 char *drive, *dir, *ext;
114 unsigned char reponse=
'o';
117 EXIT_IF(filein == NULL,
"Le nom du fichier d'entrée est vide : ", filein);
119 hasfileout = strcmp(fileout,
"");
121 _fileoutsize = strlen(fileout);
125 tmp = (
char *) malloc(
sizeof(
char)*(_fileoutsize+1));
129 _splitpath( tmp, drive, dir, _fileout, ext );
131 _fileout = basename(tmp);
133 _fileoutsize = strlen(_fileout);
142 fprintf(stdout,
">>> Attention le fichier %s ne contient pas de numéro de version. \n",filein);
143 fprintf(stdout,
">>> Le fichier %s est supposé être en version 2.1.1. \n",filein);
147 if ( (reponse !=
'o') && (reponse !=
'O') && (reponse !=
'y') && (reponse !=
'Y') ) {
149 "Erreur d'appel de MEDfileCompatibility : ", filein);
154 "Le fichier d'entrée n'est pas dans un format HDF compatible : ", filein);
160 commande = (
char *) malloc(
sizeof(
char)*(strlen(
"cp ")+strlen(filein)+
161 strlen(
" ")+_fileoutsize + 4 +1 ) );
162 EXIT_IF(commande == NULL,NULL,NULL);
163 strcpy(commande,
"cp \"");
164 strcat(commande,filein);
165 strcat(commande,
"\" \"");
166 strcat(commande,_fileout);
167 strcat(commande,
"\"");
168 fprintf(stdout,
">>> Creation du fichier %s : %s \n",_fileout,commande);
171 commande = (
char *) malloc(
sizeof(
char)*(strlen(
"chmod u+w \"") + _fileoutsize +1 +1 ) );
172 EXIT_IF(commande == NULL,NULL,NULL);
173 strcpy(commande,
"chmod u+w \"");
174 strcat(commande,_fileout);
175 strcat(commande,
"\"");
176 fprintf(stdout,
">>> Chmod +w du fichier %s : %s \n",_fileout,commande);
181 EXIT_IF(fid < 0,
"Ouverture du fichier : ", _fileout);
193 EXIT_IF(ret < 0,
"Lecture du numero de version de MED-fichier",NULL);
194 if (strcmp(version,
"2_2_0") < 0)
196 if (strcmp(version,
"2_3_2") < 0)
198 if (strcmp(version,
"3_0_0") < 0)
200 if (strcmp(version,
"3_1_0") < 0)
202 if (strcmp(version,
"3_2_0") < 0)
204 if (strcmp(version,
"3_3_0") < 0)
206 if (strcmp(version,
"4_1_0") < 0)
210 if (MAJ_400_410 == 0) {
211 fprintf(stdout,
"Le fichier %s est déjà au bon format !!! \n",_fileout);
213 EXIT_IF(ret < 0,
"Fermeture du fichier",filein);
218 fprintf(stdout,
">>> Lancement de la normalisation du fichier selon le format " PACKAGE_VERSION " ...\n");
224 fprintf(stdout,
"- Lancement de la mise à jour du numéro de version ... \n");
229 fprintf(stdout,
" Numéro de version : ... OK ... \n");
234 fprintf(stdout,
"- Lancement de la mise à jour des maillages (21_22)... \n");
236 fprintf(stdout,
" Maillage(s) : ... OK ...\n");
239 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (21_22)... \n");
241 fprintf(stdout,
" Champs(s) : ... OK ...\n");
244 nprofil = MEDnProfil(fid);
246 fprintf(stdout,
"- Lancement de la mise à jour des profils (21_22)... \n");
248 fprintf(stdout,
" Profils(s) : ... OK ...\n");
253 EXIT_IF(gid < 0,
"Creation du groupe HDF sur les profils",chemin_profils);
255 EXIT_IF(ret < 0,
"Fermeture du groupe HDF sur les profils",chemin_profils);
262 EXIT_IF(gid < 0,
"Creation du groupe HDF sur les liens",chemin_liens);
264 EXIT_IF(ret < 0,
"Fermeture du groupe HDF sur les liens",chemin_liens);
269 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (231_232)... \n");
271 fprintf(stdout,
" Champs(s) : ... OK ...\n");
272 fprintf(stdout,
"- Lancement de la mise à jour des noms de maillages (231_232)... \n");
274 fprintf(stdout,
" Noms(s) de maillage(s): ... OK ...\n");
283 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (236_300)... \n");
285 fprintf(stdout,
" Champs(s) : ... OK ...\n");
289 fprintf(stdout,
"- Lancement de la mise à jour des maillages (236_300)... \n");
291 fprintf(stdout,
" Maillage(s): ... OK ...\n");
307 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (300_310) ... \n");
309 fprintf(stdout,
" Champs(s) : ... OK ...\n");
324 fprintf(stdout,
"- Lancement de la mise à jour des familles/groupes (310_320) ... \n");
326 fprintf(stdout,
" Famille(s)/Groupe(s) : ... OK ...\n");
339 fprintf(stdout,
"- Lancement de la mise à jour des champs entiers (321_330) ... \n");
341 fprintf(stdout,
" Champs entiers : ... OK ...\n");
353 fprintf(stdout,
"- Lancement de la mise à jour des meta-données sur les champs (400_410) ... \n");
355 fprintf(stdout,
" Champs meta-data : ... OK ...\n");
367 EXIT_IF(ret < 0,
"Fermeture du fichier",_fileout);
370 fprintf(stdout,
">>> Conversion du fichier %s au format MED V" PACKAGE_VERSION " terminée\n",
374 if (!hasfileout) free(tmp);
MEDC_EXPORT med_err _MEDdatagroupFermer(med_idt id)
void MAJ_310_320_familles(med_idt fid)
#define MED_PROFILE_GRP_SIZE
void MAJ_version(med_idt fid)
void MAJ_231_232_maillages(med_idt fid)
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_300_310_champs(med_idt fid)
void MAJ_231_232_champs(med_idt fid)
void MAJ_21_22_champs(med_idt fid)
void MAJ_236_300_maillages(med_idt fid)
void MAJ_21_22_profils(med_idt fid, med_int nprofil)
void MAJ_400_410_champs(med_idt fid)
void MAJ_320_330_champs(med_idt fid)
MEDC_EXPORT med_idt _MEDdatagroupCreer(med_idt pid, const char *const nom)
void MAJ_236_300_champs(med_idt fid)
MEDC_EXPORT med_err MEDfileClose(med_idt fid)
Fermeture d'un fichier MED.
MEDC_EXPORT med_idt MEDfileOpen(const char *const filename, const med_access_mode accessmode)
Ouverture d'un fichier MED.
MEDC_EXPORT med_file_version _MEDfileVersion(const med_idt oid)
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.
#define EXIT_IF(expression, message, arg)
void MAJ_write_version_num(med_idt fid, const int majeur, const int mineur, const int release)
void MAJ_21_22_maillages(med_idt fid)
MEDC_EXPORT void _MEDmodeErreurVerrouiller(void)
int MEDimport(const char *filein, const char *fileout)