[615] | 1 | /* KERNELS */ |
---|
| 2 | |
---|
[689] | 3 | #undef PREC_DOUBLE |
---|
| 4 | |
---|
| 5 | #ifdef PREC_DOUBLE |
---|
| 6 | typedef double number; |
---|
| 7 | #else |
---|
| 8 | typedef float number; |
---|
| 9 | #endif |
---|
| 10 | |
---|
[639] | 11 | enum {max_nb_stage=5}; |
---|
[689] | 12 | extern number tauj[max_nb_stage]; |
---|
| 13 | extern number cslj[max_nb_stage][max_nb_stage], cflj[max_nb_stage][max_nb_stage]; |
---|
[639] | 14 | |
---|
[618] | 15 | void dynamico_init_params(void); |
---|
| 16 | |
---|
[642] | 17 | void dynamico_ARK_step(int nstep, |
---|
[689] | 18 | number *mass_col, number *rhodz, number *theta_rhodz, |
---|
| 19 | number *u, number *geopot, number *w, |
---|
| 20 | number *theta, number *ps, number *pk, number *hflux, number *qv, |
---|
| 21 | number *dmass_col, number *drhodz, number *dtheta_rhodz, |
---|
| 22 | number *du_fast, number *du_slow, |
---|
| 23 | number *dPhi_fast, number *dPhi_slow, |
---|
| 24 | number *dW_fast, number *dW_slow); |
---|
[639] | 25 | |
---|
[689] | 26 | void dynamico_remap(number *rhodz, number *theta_rhodz, number *u); |
---|
| 27 | |
---|
[615] | 28 | /* KERNELS -> XIOS */ |
---|
[618] | 29 | void dynamico_setup_xios(void); |
---|
| 30 | void dynamico_xios_set_timestep(double); |
---|
| 31 | void dynamico_xios_update_calendar(int); |
---|
[615] | 32 | /* CXIOS */ |
---|
| 33 | void cxios_context_close_definition(void); |
---|
| 34 | void cxios_context_finalize(void); |
---|
| 35 | void cxios_finalize(void); |
---|
[630] | 36 | |
---|
| 37 | void cxios_write_data_k81(char*, int, double*, int); |
---|
| 38 | void cxios_write_data_k82(char*, int, double*, int, int); |
---|
| 39 | void cxios_write_data_k83(char*, int, double*, int, int, int); |
---|