[84] | 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 | |
---|