      1 /*************************************************************************
      2 * COPYRIGHT (C) 1999 - 2007  EDF R&D, CEA/DEN
      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 /******************************************************************************
     21  * - Nom du fichier : test21.c
     22  *
     23  * - Description : ecriture de valeurs scalaires numeriques dans un fichier MED
     24  *
     25  *****************************************************************************/
     26
     27 #include <med.h>
     28 #define MESGERR
     29 #include <med_utils.h>
     30
     31 #ifdef DEF_LECT_ECR
     32 #define MODE_ACCES MED_LECTURE_ECRITURE
     33 #elif DEF_LECT_AJOUT
     34 #define MODE_ACCES MED_LECTURE_AJOUT
     35 #else
     36 #define MODE_ACCES MED_CREATION
     37 #endif
     38
     39 int main (int argc, char **argv)
     40
     41
     42 {
     43   med_err ret;
     44   med_idt fid;
     45   char nom_scalaire1[MED_TAILLE_NOM+1] = "VariableEntiere";
     46   char description1[MED_TAILLE_DESC+1] = "Une premiere description";
     47   char nom_scalaire2[MED_TAILLE_NOM+1] = "VariableFlottante";
     48   char description2[MED_TAILLE_DESC+1] = "Une seconde description";
     49   med_int vali1 = 56;
     50   med_int vali2 = -789;
     51   med_float valr1 = 67.98;
     52
     53   /* Creation du fichier test21.med */
     54   if ((fid = MEDouvrir("test21.med",MODE_ACCES)) < 0) {
     55     MESSAGE("Erreur a la creation du fichier test21.med");
     56     return -1;
     57   }
     58
     59   /* Creation d'un variable scalaire entiere */
     60   if (MEDscalaireCr(fid,nom_scalaire1,MED_INT,description1) < 0) {
     61     MESSAGE("Erreur a la creation d'une variable scalaire entière");
     62     return -1;
     63   }
     64   printf("Creation d'une variable scalaire entiere \n");
     65
     66   /* Ecriture d'un valeur sans pas de temps et sans numero d'ordre*/
     67   if (MEDscalaireEntierEcr(fid,nom_scalaire1,vali1,MED_NOPDT,"",0.0,MED_NONOR) < 0) {
     68     MESSAGE("Erreur a l'ecriture d'une valeur entiere");
     69     return -1;
     70   }
     71   printf("Ecriture d'une valeur entiere sans pas de temps \n");
     72
     73   /* Ecriture d'une valeur entiere avec 1 pas de temps et sans numero d'ordre */
     74   if (MEDscalaireEntierEcr(fid,nom_scalaire1,vali2,1,"ms",5.5,MED_NONOR) < 0) {
     75     MESSAGE("Erreur a l'ecriture d'une valeur entiere");
     76     return -1;
     77   }
     78   printf("Ecriture d'une valeur entiere avec pas de temps \n");
     79
     80   /* Creation d'un variable scalaire flottante */
     81   if (MEDscalaireCr(fid,nom_scalaire2,MED_FLOAT64,description2) < 0) {
     82     MESSAGE("Erreur a la creation d'une variable scalaire flottante");
     83     return -1;
     84   }
     85   printf("Creation d'une variable scalaire flottante \n");
     86
     87   /* Ecriture d'une valeur reelle avec 1 pas de temps et 1 numero d'ordre */
     88   if (MEDscalaireFlottantEcr(fid,nom_scalaire2,valr1,1,"ms",5.5,2) < 0) {
     89     MESSAGE("Erreur a l'ecriture d'une valeur flottante");
     90     return -1;
     91   }
     92   printf("Ecriture d'une valeur reelle avec pas de temps et numero d'ordre \n");
     93
     94   /* Fermeture du fichier */
     95   if (MEDfermer(fid) < 0) {
     96     MESSAGE("Erreur a la fermeture du fichier");
     97     return -1;
     98   }
     99
    100   return 0;
    101 }