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"
96 med_int majeur, mineur, release;
99 char *_fileout,*tmp=NULL;
101 bool hasfileout=
false;
107 int MAJ_21_22 = 0, MAJ_231_232 = 0, MAJ_236_300 = 0, MAJ_300_310 = 0, MAJ_310_320 = 0 ;
109 char *drive, *dir, *ext;
111 unsigned char reponse=
'o';
114 EXIT_IF(filein == NULL,
"Le nom du fichier d'entrée est vide : ", filein);
116 hasfileout = strcmp(fileout,
"");
118 _fileoutsize = strlen(fileout);
122 tmp = (
char *) malloc(
sizeof(
char)*(_fileoutsize+1));
126 _splitpath( tmp, drive, dir, _fileout, ext );
128 _fileout = basename(tmp);
130 _fileoutsize = strlen(_fileout);
139 fprintf(stdout,
">>> Attention le fichier %s ne contient pas de numéro de version. \n",filein);
140 fprintf(stdout,
">>> Le fichier %s est supposé être en version 2.1.1. \n",filein);
144 if ( (reponse !=
'o') && (reponse !=
'O') && (reponse !=
'y') && (reponse !=
'Y') ) {
146 "Erreur d'appel de MEDfileCompatibility : ", filein);
151 "Le fichier d'entrée n'est pas dans un format HDF compatible : ", filein);
157 commande = (
char *) malloc(
sizeof(
char)*(strlen(
"cp ")+strlen(filein)+
158 strlen(
" ")+_fileoutsize + 4 +1 ) );
159 EXIT_IF(commande == NULL,NULL,NULL);
160 strcpy(commande,
"cp \"");
161 strcat(commande,filein);
162 strcat(commande,
"\" \"");
163 strcat(commande,_fileout);
164 strcat(commande,
"\"");
165 fprintf(stdout,
">>> Creation du fichier %s : %s \n",_fileout,commande);
168 commande = (
char *) malloc(
sizeof(
char)*(strlen(
"chmod u+w \"") + _fileoutsize +1 +1 ) );
169 EXIT_IF(commande == NULL,NULL,NULL);
170 strcpy(commande,
"chmod u+w \"");
171 strcat(commande,_fileout);
172 strcat(commande,
"\"");
173 fprintf(stdout,
">>> Chmod +w du fichier %s : %s \n",_fileout,commande);
178 EXIT_IF(fid < 0,
"Ouverture du fichier : ", _fileout);
190 EXIT_IF(ret < 0,
"Lecture du numero de version de MED-fichier",NULL);
191 if (strcmp(version,
"2_2_0") < 0)
193 if (strcmp(version,
"2_3_2") < 0)
195 if (strcmp(version,
"3_0_0") < 0)
197 if (strcmp(version,
"3_1_0") < 0)
199 if (strcmp(version,
"3_2_0") < 0)
203 if (MAJ_310_320 == 0) {
204 fprintf(stdout,
"Le fichier %s est déjà au bon format !!! \n",_fileout);
206 EXIT_IF(ret < 0,
"Fermeture du fichier",filein);
211 fprintf(stdout,
">>> Lancement de la normalisation du fichier selon le format " PACKAGE_VERSION " ...\n");
217 fprintf(stdout,
"- Lancement de la mise à jour du numéro de version ... \n");
222 fprintf(stdout,
" Numéro de version : ... OK ... \n");
227 fprintf(stdout,
"- Lancement de la mise à jour des maillages (21_22)... \n");
229 fprintf(stdout,
" Maillage(s) : ... OK ...\n");
232 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (21_22)... \n");
234 fprintf(stdout,
" Champs(s) : ... OK ...\n");
237 nprofil = MEDnProfil(fid);
239 fprintf(stdout,
"- Lancement de la mise à jour des profils (21_22)... \n");
241 fprintf(stdout,
" Profils(s) : ... OK ...\n");
246 EXIT_IF(gid < 0,
"Creation du groupe HDF sur les profils",chemin_profils);
248 EXIT_IF(ret < 0,
"Fermeture du groupe HDF sur les profils",chemin_profils);
255 EXIT_IF(gid < 0,
"Creation du groupe HDF sur les liens",chemin_liens);
257 EXIT_IF(ret < 0,
"Fermeture du groupe HDF sur les liens",chemin_liens);
262 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (231_232)... \n");
264 fprintf(stdout,
" Champs(s) : ... OK ...\n");
265 fprintf(stdout,
"- Lancement de la mise à jour des noms de maillages (231_232)... \n");
267 fprintf(stdout,
" Noms(s) de maillage(s): ... OK ...\n");
276 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (236_300)... \n");
278 fprintf(stdout,
" Champs(s) : ... OK ...\n");
282 fprintf(stdout,
"- Lancement de la mise à jour des maillages (236_300)... \n");
284 fprintf(stdout,
" Maillage(s): ... OK ...\n");
300 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (300_310) ... \n");
302 fprintf(stdout,
" Champs(s) : ... OK ...\n");
317 fprintf(stdout,
"- Lancement de la mise à jour des familles/groupes (310_320) ... \n");
319 fprintf(stdout,
" Famille(s)/Groupe(s) : ... OK ...\n");
331 EXIT_IF(ret < 0,
"Fermeture du fichier",_fileout);
334 fprintf(stdout,
">>> Conversion du fichier %s au format MED V" PACKAGE_VERSION " terminée\n",
338 if (!hasfileout) free(tmp);
void MAJ_300_310_champs(med_idt fid)
void MAJ_236_300_champs(med_idt fid)
int MEDimport(char *filein, char *fileout)
MEDC_EXPORT med_file_version _MEDfileVersion(const med_idt oid)
MEDC_EXPORT med_idt MEDfileOpen(const char *const filename, const med_access_mode accessmode)
Ouverture d'un fichier MED.
void MAJ_21_22_maillages(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.
void MAJ_21_22_champs(med_idt fid)
void MAJ_236_300_maillages(med_idt fid)
void MAJ_write_version_num(med_idt fid, const int majeur, const int mineur, const int release)
void MAJ_231_232_champs(med_idt fid)
void MAJ_21_22_profils(med_idt fid, med_int nprofil)
#define MED_PROFILE_GRP_SIZE
void MAJ_version(med_idt fid)
void MAJ_231_232_maillages(med_idt fid)
MEDC_EXPORT med_err MEDfileClose(med_idt fid)
Fermeture d'un fichier MED.
void MAJ_310_320_familles(med_idt fid)
MEDC_EXPORT med_err _MEDdatagroupFermer(med_idt id)
#define EXIT_IF(expression, message, arg)
MEDC_EXPORT med_idt _MEDdatagroupCreer(med_idt pid, const char *const nom)
MEDC_EXPORT void _MEDmodeErreurVerrouiller(void)
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.