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" 97 med_int majeur, mineur, release;
100 char *_fileout,*tmp=NULL;
102 bool hasfileout=
false;
108 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 ;
110 char *drive, *dir, *ext;
112 unsigned char reponse=
'o';
115 EXIT_IF(filein == NULL,
"Le nom du fichier d'entrée est vide : ", filein);
117 hasfileout = strcmp(fileout,
"");
119 _fileoutsize = strlen(fileout);
123 tmp = (
char *) malloc(
sizeof(
char)*(_fileoutsize+1));
127 _splitpath( tmp, drive, dir, _fileout, ext );
129 _fileout = basename(tmp);
131 _fileoutsize = strlen(_fileout);
140 fprintf(stdout,
">>> Attention le fichier %s ne contient pas de numéro de version. \n",filein);
141 fprintf(stdout,
">>> Le fichier %s est supposé être en version 2.1.1. \n",filein);
145 if ( (reponse !=
'o') && (reponse !=
'O') && (reponse !=
'y') && (reponse !=
'Y') ) {
147 "Erreur d'appel de MEDfileCompatibility : ", filein);
152 "Le fichier d'entrée n'est pas dans un format HDF compatible : ", filein);
158 commande = (
char *) malloc(
sizeof(
char)*(strlen(
"cp ")+strlen(filein)+
159 strlen(
" ")+_fileoutsize + 4 +1 ) );
160 EXIT_IF(commande == NULL,NULL,NULL);
161 strcpy(commande,
"cp \"");
162 strcat(commande,filein);
163 strcat(commande,
"\" \"");
164 strcat(commande,_fileout);
165 strcat(commande,
"\"");
166 fprintf(stdout,
">>> Creation du fichier %s : %s \n",_fileout,commande);
169 commande = (
char *) malloc(
sizeof(
char)*(strlen(
"chmod u+w \"") + _fileoutsize +1 +1 ) );
170 EXIT_IF(commande == NULL,NULL,NULL);
171 strcpy(commande,
"chmod u+w \"");
172 strcat(commande,_fileout);
173 strcat(commande,
"\"");
174 fprintf(stdout,
">>> Chmod +w du fichier %s : %s \n",_fileout,commande);
179 EXIT_IF(fid < 0,
"Ouverture du fichier : ", _fileout);
191 EXIT_IF(ret < 0,
"Lecture du numero de version de MED-fichier",NULL);
192 if (strcmp(version,
"2_2_0") < 0)
194 if (strcmp(version,
"2_3_2") < 0)
196 if (strcmp(version,
"3_0_0") < 0)
198 if (strcmp(version,
"3_1_0") < 0)
200 if (strcmp(version,
"3_2_0") < 0)
202 if (strcmp(version,
"3_3_0") < 0)
206 if (MAJ_320_330 == 0) {
207 fprintf(stdout,
"Le fichier %s est déjà au bon format !!! \n",_fileout);
209 EXIT_IF(ret < 0,
"Fermeture du fichier",filein);
214 fprintf(stdout,
">>> Lancement de la normalisation du fichier selon le format " PACKAGE_VERSION " ...\n");
220 fprintf(stdout,
"- Lancement de la mise à jour du numéro de version ... \n");
225 fprintf(stdout,
" Numéro de version : ... OK ... \n");
230 fprintf(stdout,
"- Lancement de la mise à jour des maillages (21_22)... \n");
232 fprintf(stdout,
" Maillage(s) : ... OK ...\n");
235 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (21_22)... \n");
237 fprintf(stdout,
" Champs(s) : ... OK ...\n");
240 nprofil = MEDnProfil(fid);
242 fprintf(stdout,
"- Lancement de la mise à jour des profils (21_22)... \n");
244 fprintf(stdout,
" Profils(s) : ... OK ...\n");
249 EXIT_IF(gid < 0,
"Creation du groupe HDF sur les profils",chemin_profils);
251 EXIT_IF(ret < 0,
"Fermeture du groupe HDF sur les profils",chemin_profils);
258 EXIT_IF(gid < 0,
"Creation du groupe HDF sur les liens",chemin_liens);
260 EXIT_IF(ret < 0,
"Fermeture du groupe HDF sur les liens",chemin_liens);
265 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (231_232)... \n");
267 fprintf(stdout,
" Champs(s) : ... OK ...\n");
268 fprintf(stdout,
"- Lancement de la mise à jour des noms de maillages (231_232)... \n");
270 fprintf(stdout,
" Noms(s) de maillage(s): ... OK ...\n");
279 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (236_300)... \n");
281 fprintf(stdout,
" Champs(s) : ... OK ...\n");
285 fprintf(stdout,
"- Lancement de la mise à jour des maillages (236_300)... \n");
287 fprintf(stdout,
" Maillage(s): ... OK ...\n");
303 fprintf(stdout,
"- Lancement de la mise à jour des champs de résultats (300_310) ... \n");
305 fprintf(stdout,
" Champs(s) : ... OK ...\n");
320 fprintf(stdout,
"- Lancement de la mise à jour des familles/groupes (310_320) ... \n");
322 fprintf(stdout,
" Famille(s)/Groupe(s) : ... OK ...\n");
335 fprintf(stdout,
"- Lancement de la mise à jour des champs entiers (321_330) ... \n");
337 fprintf(stdout,
" Champs entiers : ... OK ...\n");
349 EXIT_IF(ret < 0,
"Fermeture du fichier",_fileout);
352 fprintf(stdout,
">>> Conversion du fichier %s au format MED V" PACKAGE_VERSION " terminée\n",
356 if (!hasfileout) free(tmp);
MEDC_EXPORT med_err _MEDdatagroupFermer(med_idt id)
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.
MEDC_EXPORT med_idt MEDfileOpen(const char *const filename, const med_access_mode accessmode)
Ouverture d'un fichier MED.
int MEDimport(char *filein, char *fileout)
MEDC_EXPORT med_idt _MEDdatagroupCreer(med_idt pid, const char *const nom)
void MAJ_310_320_familles(med_idt fid)
void MAJ_320_330_champs(med_idt fid)
void MAJ_21_22_champs(med_idt fid)
MEDC_EXPORT void _MEDmodeErreurVerrouiller(void)
#define EXIT_IF(expression, message, arg)
void MAJ_version(med_idt fid)
void MAJ_231_232_maillages(med_idt fid)
MEDC_EXPORT med_file_version _MEDfileVersion(const med_idt oid)
void MAJ_236_300_maillages(med_idt fid)
void MAJ_version_num(med_idt fid, const int majeur, const int mineur, const int release)
void MAJ_300_310_champs(med_idt fid)
void MAJ_21_22_maillages(med_idt fid)
void MAJ_write_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_236_300_champs(med_idt fid)
MEDC_EXPORT med_err MEDfileClose(med_idt fid)
Fermeture d'un fichier MED.
void MAJ_21_22_profils(med_idt fid, med_int nprofil)
void MAJ_231_232_champs(med_idt fid)
#define MED_PROFILE_GRP_SIZE