MEDlienEcr.c
Aller à la documentation de ce fichier.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
00023 #include <string.h>
00024 #include <stdlib.h>
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 med_err
00037 MEDlienEcr(med_idt fid, char *lienval, char *maa)
00038 {
00039 med_idt gid=0, chid=0, did=0;
00040 med_size dimd[1];
00041 med_err ret=-1;
00042 char chemin[MED_TAILLE_LIENS+1];
00043 med_int n ;
00044
00045
00046
00047
00048 _MEDmodeErreurVerrouiller();
00049 if (MEDcheckVersion(fid) < 0) return -1;
00050
00051
00052
00053
00054
00055 strncpy(chemin,MED_LIENS,MED_TAILLE_LIENS-1);
00056 chemin[MED_TAILLE_LIENS-1] = '\0';
00057 if ((gid = _MEDdatagroupOuvrir(fid,chemin)) < 0)
00058 if ((gid = _MEDdatagroupCreer(fid,chemin)) < 0) {
00059 MESSAGE("Impossible de creer le groupe MED_LIENS : ");
00060 SSCRUTE(chemin); goto ERROR;
00061 }
00062
00063
00064
00065
00066
00067 NOFINALBLANK(maa,ERROR);
00068 if ((chid = _MEDdatagroupOuvrir(gid,maa)) < 0)
00069 if ((chid = _MEDdatagroupCreer(gid,maa)) < 0) {
00070 MESSAGE("Erreur à la création du lien au maillage : ");
00071 SSCRUTE(maa);
00072 goto ERROR;
00073 }
00074
00075
00076
00077
00078 n = strlen(lienval);
00079 if ((ret = _MEDattrEntierEcrire(chid,MED_NOM_NBR,&n)) < 0) {
00080 MESSAGE("Erreur à l'écriture de l'attribut n : ");
00081 ISCRUTE(n); goto ERROR;
00082 }
00083
00084
00085
00086
00087 dimd[0] = n;
00088 if ((ret = _MEDdatasetStringEcrire(chid,MED_NOM_LIE,dimd,lienval))<0) {
00089 MESSAGE("Impossible d'ecrire le dataset lienval de taille : ");
00090 ISCRUTE(n); goto ERROR;
00091 }
00092
00093
00094
00095
00096 ret =0;
00097 ERROR:
00098 if (chid>0) if (_MEDdatagroupFermer(chid) < 0) {
00099 MESSAGE("Impossible de fermer le datagroup : ");
00100 ISCRUTE_id(chid);ret=-1;
00101 }
00102
00103 if (gid>0) if (_MEDdatagroupFermer(gid) < 0) {
00104 MESSAGE("Impossible de fermer le datagroup : ");
00105 ISCRUTE_id(gid);ret=-1;
00106 }
00107
00108 return ret;
00109 }