1  /*************************************************************************
  2  * COPYRIGHT (C) 1999 - 2003  EDF R&D
  3  * THIS LIBRARY IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
  4  * IT UNDER THE TERMS OF THE GNU LESSER GENERAL PUBLIC LICENSE 
  5  * AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 
  6  * EITHER VERSION 2.1 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION.
  7  *  
  8  * THIS LIBRARY IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
  9  * WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
 10  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
 11  * LESSER GENERAL PUBLIC LICENSE FOR MORE DETAILS.
 12  *
 13  * YOU SHOULD HAVE RECEIVED A COPY OF THE GNU LESSER GENERAL PUBLIC LICENSE
 14  * ALONG WITH THIS LIBRARY; IF NOT, WRITE TO THE FREE SOFTWARE FOUNDATION,
 15  * INC., 59 TEMPLE PLACE, SUITE 330, BOSTON, MA 02111-1307 USA
 16  *
 17  *************************************************************************/
 18
 19  /******************************************************************************
 20   * - Nom du fichier : test2.c
 21   *
 22   * - Description : exemples de creation de maillages MED.
 23   *
 24   *****************************************************************************/
 25
 26  #include <med.h>
 27  #include <med_utils.h>
 28
 29  int main (int argc, char **argv)
 30  {
 31    med_err ret=0;
 32    med_idt fid;
 33    char des[MED_TAILLE_DESC+1]="";
 34
 35    /* Verification de la conformite du format med du fichier test1.med */
 36    ret = MEDformatConforme("test1.med");
 37    if (ret < 0) {
 38      MESSAGE("Format HDF non conforme ou fichier inexistant");
 39      return -1;
 40    }
 41
 42    /* Ouverture en mode de lecture du fichier "test1.med" */
 43    fid = MEDouvrir("test1.med",MED_LECTURE);
 44    if (fid < 0) {
 45        MESSAGE("Erreur a l'ouverture du fichier test1.med en mode MED_LECTURE");
 46        return -1;
 47    }
 48
 49    /* Affiche de l'en-tete du fichier */
 50    ret = MEDfichEntete(fid,MED_FICH_DES, des);
 51    if (ret == 0)
 52      printf("En-tete du fichier test1.med : %s\n",des);
 53    else {
 54      MESSAGE("Erreur a la lecture de l'en-tete du fichier test1.med");
 55      ret = -1;
 56    }
 57
 58    /* Fermeture du fichier test1.med */
 59    ret = MEDfermer(fid);
 60    if (ret < 0) {
 61      MESSAGE("Erreur a la fermeture du fichier test1.med");
 62      return -1;
 63    }
 64
 65    /* Ouverture en mode creation du fichier test2.med */
 66    fid = MEDouvrir("test2.med",MED_CREATION);
 67    if (fid < 0) {
 68      MESSAGE("Erreur a la creation du fichier test2.med");
 69      return -1;
 70    }
 71
 72    /* Creation du maillage "maa1" de type MED_NON_STRUCTURE
 73       et de dimension 3 */
 74    if (MEDmaaCr(fid,"maa1",3,MED_NON_STRUCTURE,
 75                "un premier maillage") < 0) {
 76      MESSAGE("Erreur a la creation du maillage maa1");
 77      ret = -1;
 78    }
 79
 80    /* Ecriture du nom universel pour "maa1" */
 81    if (MEDunvCr(fid,"maa1") < 0) {
 82      MESSAGE("Erreur a la creation du nom universel de maa1");
 83      ret = -1;
 84    }
 85
 86    /* Creation du maillage "maa2" de type MED_NON_STRUCTURE
 87       et de dimension 2 */
 88    if (MEDmaaCr(fid,"maa2",2,MED_NON_STRUCTURE,
 89                "un second maillage") < 0) {
 90      MESSAGE("Erreur a la creation du maillage maa2");
 91      ret = -1;
 92    }
 93
 94    /* Ecriture de la dimension de l'espace : Maillage de 
 95       dimension 2 dans un espace de dimension 3 */
 96    if (MEDdimEspaceCr(fid,"maa2",3) < 0) {
 97      MESSAGE("Erreur a l'ecriture de la dimension de l'espace");
 98      ret = -1;
 99    }
100
101    /* Creation du maillage "maa3" de type MED_STRUCTURE
102       et de dimension 1 */
103    if (MEDmaaCr(fid,"maa3",1,MED_STRUCTURE,
104                "un troisieme maillage") < 0) {
105      MESSAGE("Erreur a la creation du maillage maa3");
106      ret = -1;
107    }
108
109    /* Fermeture du fichier */
110    if ((ret = MEDfermer(fid))  < 0) {
111      MESSAGE("Erreur a la fermeture du fichier");
112      return -1;
113    }
114
115    return ret;
116  }
117
118
119
120