1 | //netcdf |
---|
2 | #ifndef NCUTIL |
---|
3 | #define NCUTIL |
---|
4 | |
---|
5 | #include <stdio.h> |
---|
6 | #include <stdlib.h> |
---|
7 | #include <iostream> |
---|
8 | #include <netcdf.h> |
---|
9 | |
---|
10 | #define YYDOUBLE //équivalent du YDOUBLE/YFLOAT de YAO |
---|
11 | //normalement YYDOUBLE et YBOUBLE doivent être définis en même temps |
---|
12 | //Verifié dans appli_start |
---|
13 | |
---|
14 | |
---|
15 | #ifdef YFLOAT |
---|
16 | #define NC_REAL NC_FLOAT |
---|
17 | #define nc_put_vara_real nc_put_vara_float |
---|
18 | #define YREAL float |
---|
19 | #else |
---|
20 | #define NC_REAL NC_DOUBLE |
---|
21 | #define nc_put_vara_real nc_put_vara_double |
---|
22 | #define YREAL double |
---|
23 | #endif |
---|
24 | |
---|
25 | void handle_error (int status, char *txt);///*fonction de message d'erreur |
---|
26 | int Ouvre_nc(char const *var_file );///* Ouvre un fichier nc et renvoie son id var_file_id |
---|
27 | int Ouvre_nc_add(char const *var_file); |
---|
28 | int Ouvre_nc_write(char const *var_file); ///* ouvre un fichier nc pour écriture et renvoie son id var_file_id |
---|
29 | int Var_id(int var_file_id,char* varn); ///*initial traceurs actifs |
---|
30 | |
---|
31 | |
---|
32 | void vonclire(int t,int znbval, int ynbval, int xnbval, int ncid, int varid, double vect[]); |
---|
33 | void vonclire(int t,int znbval, int ynbval, int xnbval, int ncid, int varid, int vect[]); |
---|
34 | // lire volume 3D au temps t |
---|
35 | // le parametre t commence de 0 et pas de 1 |
---|
36 | // (t,znbval,ynbval,xnbval,ncid, varid): |
---|
37 | // lit la variable varid aux points (t,1:znbval,1:ynbval,1:xnbval) et |
---|
38 | // renvoie un vecteur de dim znbval*ynbval*xnbval |
---|
39 | |
---|
40 | void voncwrite(int t,int znbval,int ynbval, int xnbval, char const *var_name,int ncid,int dimids[], YREAL vect[]); |
---|
41 | |
---|
42 | |
---|
43 | void sonclire(int t,int ynbval, int xnbval, int ncid, int varid, double vect[]); |
---|
44 | void sonclire(int t,int ynbval, int xnbval, int ncid, int varid, float vect[]); |
---|
45 | void sonclire(int t,int ynbval, int xnbval, int ncid, int varid, int vect[]); |
---|
46 | // lire surface 2D au temps t |
---|
47 | // le parametre t commence de 0 et pas de 1 |
---|
48 | // (t,ynbval,xnbval,ncid, varid): |
---|
49 | // lit la variable varid aux points (t,1:ynbval,1:xnbval) et |
---|
50 | // renvoie un vecteur de dim ynbval*xnbval |
---|
51 | void snclire(int ynbval, int xnbval, int ncid, int varid, float vect[]); |
---|
52 | void snclire(int ynbval, int xnbval, int ncid, int varid, double vect[]); |
---|
53 | |
---|
54 | void soncwrite(int t,int ynbval, int xnbval, char const *var_name,int ncid,int dimids[], YREAL vect[]); |
---|
55 | |
---|
56 | void zonclire(int t,int znbval, int ncid, int varid, double vect[]); |
---|
57 | void zonclire(int t,int znbval, int ncid, int varid, int vect[]); |
---|
58 | // lire surface 1D au temps t |
---|
59 | // le parametre t commence de 0 et pas de 1 |
---|
60 | // (t,znbval,ncid, varid): |
---|
61 | // lit la variable varid aux points (t,1:znbval) et |
---|
62 | // renvoie un vecteur de dim znbval |
---|
63 | |
---|
64 | void znclire(int znbval, int ncid, int varid, float vect[]); |
---|
65 | void znclire(int znbval, int ncid, int varid, double vect[]); |
---|
66 | |
---|
67 | void scalarlire (int ncid,int varid, int *var); |
---|
68 | void scalarlire (int ncid,int varid, float *var); |
---|
69 | void scalarlire (int ncid,int varid, double *var); |
---|
70 | |
---|
71 | void scalarwrite (int ncid,char const *var_name,int var); |
---|
72 | void scalarwrite (int ncid,char const *var_name,float var); |
---|
73 | void scalarwrite (int ncid,char const *var_name,double var); |
---|
74 | |
---|
75 | void zoncwrite(int t,int znbval,char const *var_name,int ncid,int dimids[], YREAL vect[]); |
---|
76 | |
---|
77 | void zncwrite(int znbval,char const *var_name,int ncid,int dimids[], YREAL vect[]); |
---|
78 | void sncwrite(int ynbval, int xnbval, char const *var_name,int ncid,int dimids[], YREAL vect[]); |
---|
79 | |
---|
80 | void twrite(int t, char *var_name,int ncid,int tid,int var); |
---|
81 | void twrite(int t, char *var_name,int ncid,int tid,float var); |
---|
82 | void twrite(int t, char *var_name,int ncid,int tid,double var); |
---|
83 | |
---|
84 | #endif |
---|
85 | |
---|