1 | /* KERNELS */ |
---|
2 | |
---|
3 | #undef PREC_DOUBLE |
---|
4 | |
---|
5 | #ifdef PREC_DOUBLE |
---|
6 | typedef double number; |
---|
7 | #else |
---|
8 | typedef float number; |
---|
9 | #endif |
---|
10 | |
---|
11 | enum {max_nb_stage=5}; |
---|
12 | extern number tauj[max_nb_stage]; |
---|
13 | extern number cslj[max_nb_stage][max_nb_stage], cflj[max_nb_stage][max_nb_stage]; |
---|
14 | |
---|
15 | void dynamico_init_params(void); |
---|
16 | |
---|
17 | void dynamico_ARK_step(int nstep, |
---|
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); |
---|
25 | |
---|
26 | void dynamico_remap(number *rhodz, number *theta_rhodz, number *u); |
---|
27 | |
---|
28 | /* KERNELS -> XIOS */ |
---|
29 | void dynamico_setup_xios(void); |
---|
30 | void dynamico_xios_set_timestep(double); |
---|
31 | void dynamico_xios_update_calendar(int); |
---|
32 | /* CXIOS */ |
---|
33 | void cxios_context_close_definition(void); |
---|
34 | void cxios_context_finalize(void); |
---|
35 | void cxios_finalize(void); |
---|
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); |
---|