ComIn 0.5.1
ICON Community Interface
Loading...
Searching...
No Matches
comin.h
Go to the documentation of this file.
1
12
13#ifndef COMIN_H
14#define COMIN_H
15
16#include "comin_global.inc"
17#include "comin_version.inc"
18#include <stdarg.h>
19#include <stdbool.h>
20#include <stdint.h>
21#include <stdio.h>
22
23#ifdef DOXYGEN
24// This is a dirty workaround to make C symbols referable if there
25// is a Fortran symbol with the same name
26namespace C {
27#endif
29#ifdef __cplusplus
30extern "C" {
31#endif
35
36 typedef struct t_comin_var_descriptor {
37 char name[COMIN_MAX_LEN_VAR_NAME + 1];
38 int id;
41 //< Opaque data type for a ComIn variable handle.
43
44 //< Opaque data type for a variable list iterator.
47
48 //< Opaque data type for a metadata iterator.
95
103
112 typedef enum t_comin_error_code {
152
153 typedef enum t_comin_hgrid_id {
158
166
172
174 COMIN_DIM_SEMANTICS_UNDEF = 1, // not explicitly defined
176 COMIN_DIM_SEMANTICS_BLOCK = 3, // blocked data layout
177 COMIN_DIM_SEMANTICS_UNBLOCK = 4, // unblocked data layout
178 COMIN_DIM_SEMANTICS_LEVEL = 5, // vertical axis dimension
180 COMIN_DIM_SEMANTICS_OTHER = 7, // special cases (tracers, tiles, etc)
181 COMIN_DIM_SEMANTICS_UNUSED = 8 // unused dimension
190
191 static const int COMIN_DOMAIN_OUTSIDE_LOOP = -1;
192
200
201 const char* comin_current_get_datetime(void);
202
207 void comin_plugin_finish(const char* routine, const char* text);
208 void comin_print_debug(const char* msg);
209 void comin_print_info(const char* msg);
210 void comin_print_warning(const char* msg);
212 void comin_plugin_finish_f(const char* routine, const char* fmt, ...);
213 void comin_print_debug_f(const char* fmt, ...);
214 void comin_print_info_f(const char* fmt, ...);
215 void comin_print_warning_f(const char* fmt, ...);
220 void comin_error_set_errors_return(bool errors_return);
224
226 bool lmodexclusive);
228 t_comin_entry_point* context,
229 t_comin_var_descriptor var_descriptor,
230 int flag);
239 void comin_var_get_shape(t_comin_var_handle* handle, int shape[5]);
241 int dim_semantics[5]);
242 void comin_var_get_ncontained(t_comin_var_handle* handle, int* ncontained);
245
249 void
251 t_comin_var_descriptor* var_desc);
252 void
254
255 typedef void (*t_comin_callback_function)(void);
259
262 const char* key);
264 const char* key, int val);
266 const char* key, bool val);
268 const char* key, double val);
270 const char* key, char const* val);
272 const char* key);
274 const char* key);
276 const char* key);
278 const char* key);
279
289
293 void comin_descrdata_get_cell_block_limits(int jg, int irl_start, int irl_end,
294 int* i_startblk, int* i_endblk);
295 void comin_descrdata_get_cell_indices(int jg, int i_blk, int i_startblk,
296 int i_endblk, int* i_startidx,
297 int* i_endidx, int irl_start,
298 int irl_end);
299 void comin_descrdata_get_edge_block_limits(int jg, int irl_start, int irl_end,
300 int* i_startblk, int* i_endblk);
301 void comin_descrdata_get_edge_indices(int jg, int i_blk, int i_startblk,
302 int i_endblk, int* i_startidx,
303 int* i_endidx, int irl_start,
304 int irl_end);
305 void comin_descrdata_get_vert_block_limits(int jg, int irl_start, int irl_end,
306 int* i_startblk, int* i_endblk);
307 void comin_descrdata_get_vert_indices(int jg, int i_blk, int i_startblk,
308 int i_endblk, int* i_startidx,
309 int* i_endidx, int irl_start,
310 int irl_end);
321
323 void comin_setup_get_version(unsigned int* major, unsigned int* minor,
324 unsigned int* patch);
325
326 // End of doxygen C interface
328
329 // ---------------------------------------------------------
330
331 // The following **internal** struct is used to describe the
332 // descrdata structure dynamically, mainly for use in the
333 // python_adapter.
335 const char* name;
337 const char* datatype; // c datatype
338 int ndims;
339 bool has_jg;
341 };
342
343#ifdef __cplusplus
344} // extern C
345#endif
346
347/* Header extension for descrdata getter function generated by python
348 * script (comin_descrdata.h.py) in utils/. */
349#include "comin_descrdata.h"
350
351#ifdef DOXYGEN
352}; // namespace C
353#endif
354
355#endif
char name[COMIN_MAX_LEN_VAR_NAME+1]
Definition comin.h:37
const char * comin_descrdata_get_simulation_interval_exp_start()
int comin_descrdata_get_index(int j)
void comin_var_get_shape(t_comin_var_handle *handle, int shape[5])
int comin_descrdata_index_lookup_glb2loc_edge(int jg, int global_idx)
void comin_descrdata_get_vert_indices(int jg, int i_blk, int i_startblk, int i_endblk, int *i_startidx, int *i_endidx, int irl_start, int irl_end)
double * comin_var_get_device_ptr_double(t_comin_var_handle *handle)
void comin_var_get_ncontained(t_comin_var_handle *handle, int *ncontained)
const char * comin_metadata_get_string(t_comin_var_descriptor var_descriptor, const char *key)
void comin_print_debug_f(const char *fmt,...)
void comin_error_reset(void)
t_comin_metadata_iterator * comin_metadata_get_iterator_end(t_comin_var_descriptor var_descriptor)
double * comin_var_get_ptr_double(t_comin_var_handle *handle)
int comin_parallel_get_host_mpi_rank(void)
const char * comin_descrdata_get_simulation_interval_exp_stop()
void comin_descrdata_get_edge_indices(int jg, int i_blk, int i_startblk, int i_endblk, int *i_startidx, int *i_endidx, int irl_start, int irl_end)
void comin_metadata_set_integer(t_comin_var_descriptor var_descriptor, const char *key, int val)
int comin_descrdata_index_lookup_glb2loc_vert(int jg, int global_idx)
void comin_callback_register(t_comin_entry_point entry_point_id, t_comin_callback_function fct_ptr)
t_comin_entry_point comin_current_get_ep(void)
void comin_descrdata_get_vert_block_limits(int jg, int irl_start, int irl_end, int *i_startblk, int *i_endblk)
const char * comin_error_get_category(t_comin_error_code error_code)
t_comin_dim_semantics
Definition comin.h:173
void comin_var_descr_list_iterator_delete(t_comin_var_descr_list_iterator **it)
bool comin_metadata_get_bool(t_comin_var_descriptor var_descriptor, const char *key)
void comin_error_set_errors_return(bool errors_return)
double comin_metadata_get_double(t_comin_var_descriptor var_descriptor, const char *key)
t_comin_hgrid_id
Definition comin.h:153
void comin_plugin_finish_f(const char *routine, const char *fmt,...)
const char * comin_current_get_plugin_comm(void)
t_comin_log_severity comin_current_get_plugin_log_severity(void)
void(* t_comin_callback_function)(void)
Definition comin.h:255
void comin_metadata_set_real(t_comin_var_descriptor var_descriptor, const char *key, double val)
int comin_descrdata_index_lookup_glb2loc_cell(int jg, int global_idx)
void comin_print_warning_f(const char *fmt,...)
void comin_var_get_descriptor(t_comin_var_handle *handle, t_comin_var_descriptor *descr)
t_comin_var_handle * comin_var_get(int context_len, t_comin_entry_point *context, t_comin_var_descriptor var_descriptor, int flag)
void comin_var_get_descr_list_var_desc(t_comin_var_descr_list_iterator *current, t_comin_var_descriptor *var_desc)
const char * comin_current_get_plugin_name(void)
int comin_descrdata_get_block(int j)
t_comin_var_datatype
Definition comin.h:167
t_comin_var_access_flag
Definition comin.h:104
void comin_descrdata_get_cell_block_limits(int jg, int irl_start, int irl_end, int *i_startblk, int *i_endblk)
void comin_metadata_iterator_next(t_comin_metadata_iterator *it)
void comin_print_warning(const char *msg)
t_comin_metadata_typeid comin_metadata_get_typeid(t_comin_var_descriptor var_descriptor, const char *key)
int comin_metadata_get_int(t_comin_var_descriptor var_descriptor, const char *key)
void comin_var_request_add(t_comin_var_descriptor var_descriptor, bool lmodexclusive)
float * comin_var_get_device_ptr_float(t_comin_var_handle *handle)
void comin_print_debug(const char *msg)
int comin_parallel_get_plugin_mpi_comm(void)
const char * comin_callback_get_ep_name(t_comin_entry_point iep)
int comin_current_get_plugin_id(void)
t_comin_var_descr_list_iterator * comin_var_get_descr_list_head(void)
t_comin_zaxis
Definition comin.h:96
int comin_descrdata_get_vert_npromz(int jg)
const char * comin_current_get_plugin_options(void)
const char * comin_descrdata_get_simulation_interval_run_start()
const char * comin_error_get_string(t_comin_error_code error_code)
void comin_plugin_finish(const char *routine, const char *text)
void comin_setup_get_version(unsigned int *major, unsigned int *minor, unsigned int *patch)
returns version info.
void comin_print_info_f(const char *fmt,...)
const char * comin_descrdata_get_simulation_interval_run_stop()
t_comin_entry_point
Definition comin.h:51
void comin_print_info(const char *msg)
int comin_parallel_get_host_mpi_comm(void)
int comin_descrdata_get_edge_npromz(int jg)
float * comin_var_get_ptr_float(t_comin_var_handle *handle)
const char * comin_current_get_datetime(void)
const char * comin_metadata_iterator_get_key(t_comin_metadata_iterator *it)
void * comin_var_get_device_ptr(t_comin_var_handle *handle)
int comin_descrdata_get_cell_npromz(int jg)
int * comin_var_get_ptr_int(t_comin_var_handle *handle)
void comin_descrdata_get_cell_indices(int jg, int i_blk, int i_startblk, int i_endblk, int *i_startidx, int *i_endidx, int irl_start, int irl_end)
void comin_metadata_iterator_delete(t_comin_metadata_iterator *it)
t_comin_metadata_typeid
Definition comin.h:159
t_comin_error_code comin_error_get(void)
void comin_metadata_set_logical(t_comin_var_descriptor var_descriptor, const char *key, bool val)
struct t_comin_var_handle t_comin_var_handle
Definition comin.h:42
t_comin_var_descr_list_iterator * comin_var_get_descr_list_next(t_comin_var_descr_list_iterator *current)
struct t_comin_var_descr_list_iterator t_comin_var_descr_list_iterator
Definition comin.h:45
t_comin_metadata_iterator * comin_metadata_get_iterator_begin(t_comin_var_descriptor var_descriptor)
void comin_var_get_dim_semantics(t_comin_var_handle *handle, int dim_semantics[5])
bool comin_metadata_iterator_compare(t_comin_metadata_iterator *it1, t_comin_metadata_iterator *it2)
static const int COMIN_DOMAIN_OUTSIDE_LOOP
Definition comin.h:191
void comin_metadata_set_character(t_comin_var_descriptor var_descriptor, const char *key, char const *val)
void comin_error_check()
double comin_descrdata_get_timesteplength(int jg)
void comin_descrdata_get_edge_block_limits(int jg, int irl_start, int irl_end, int *i_startblk, int *i_endblk)
t_comin_log_severity
Definition comin.h:184
t_comin_error_code
Definition comin.h:112
void * comin_var_get_ptr(t_comin_var_handle *handle)
int comin_current_get_domain_id(void)
int * comin_var_get_device_ptr_int(t_comin_var_handle *handle)
@ COMIN_DIM_SEMANTICS_BLOCK
Definition comin.h:176
@ COMIN_DIM_SEMANTICS_UNUSED
Definition comin.h:181
@ COMIN_DIM_SEMANTICS_OTHER
Definition comin.h:180
@ COMIN_DIM_SEMANTICS_UNDEF
Definition comin.h:174
@ COMIN_DIM_SEMANTICS_UNBLOCK
Definition comin.h:177
@ COMIN_DIM_SEMANTICS_LEVEL
Definition comin.h:178
@ COMIN_DIM_SEMANTICS_NPROMA
Definition comin.h:175
@ COMIN_DIM_SEMANTICS_CONTAINER
Definition comin.h:179
@ COMIN_HGRID_UNSTRUCTURED_VERTEX
Definition comin.h:156
@ COMIN_HGRID_UNSTRUCTURED_EDGE
Definition comin.h:155
@ COMIN_HGRID_UNSTRUCTURED_CELL
Definition comin.h:154
@ COMIN_VAR_DATATYPE_INT
Definition comin.h:170
@ COMIN_VAR_DATATYPE_FLOAT
Definition comin.h:169
@ COMIN_VAR_DATATYPE_DOUBLE
Definition comin.h:168
@ COMIN_FLAG_DEVICE
Definition comin.h:109
@ COMIN_FLAG_READ
Definition comin.h:106
@ COMIN_FLAG_NONE
Definition comin.h:105
@ COMIN_FLAG_WRITE
Definition comin.h:107
@ COMIN_FLAG_SYNC_HALO
Definition comin.h:108
@ COMIN_ZAXIS_2D
Definition comin.h:99
@ COMIN_ZAXIS_3D_HALF
Definition comin.h:101
@ COMIN_ZAXIS_NONE
Definition comin.h:98
@ COMIN_ZAXIS_UNDEF
Definition comin.h:97
@ COMIN_ZAXIS_3D
Definition comin.h:100
@ EP_ATM_MICROPHYSICS_AFTER
Definition comin.h:83
@ EP_ATM_PHYSICS_BEFORE
Definition comin.h:74
@ EP_ATM_YAC_SYNCDEF_AFTER
Definition comin.h:56
@ EP_ATM_INTEGRATE_END
Definition comin.h:66
@ EP_ATM_INTEGRATE_AFTER
Definition comin.h:67
@ EP_ATM_YAC_ENDDEF_BEFORE
Definition comin.h:57
@ EP_ATM_NUDGING_BEFORE
Definition comin.h:76
@ EP_ATM_SURFACE_BEFORE
Definition comin.h:78
@ EP_ATM_SURFACE_AFTER
Definition comin.h:79
@ EP_ATM_PHYSICS_AFTER
Definition comin.h:75
@ EP_ATM_RADHEAT_AFTER
Definition comin.h:89
@ EP_SECONDARY_CONSTRUCTOR
Definition comin.h:52
@ EP_ATM_RADIATION_AFTER
Definition comin.h:87
@ EP_ATM_TURBULENCE_BEFORE
Definition comin.h:80
@ EP_ATM_NUDGING_AFTER
Definition comin.h:77
@ EP_ATM_RADIATION_BEFORE
Definition comin.h:86
@ EP_ATM_TIMELOOP_END
Definition comin.h:62
@ EP_ATM_TIMELOOP_AFTER
Definition comin.h:63
@ EP_FINISH
Definition comin.h:92
@ EP_DESTRUCTOR
Definition comin.h:93
@ EP_ATM_TIMELOOP_START
Definition comin.h:61
@ EP_ATM_YAC_ENDDEF_AFTER
Definition comin.h:58
@ EP_ATM_RADHEAT_BEFORE
Definition comin.h:88
@ EP_ATM_TURBULENCE_AFTER
Definition comin.h:81
@ EP_ATM_INTEGRATE_BEFORE
Definition comin.h:64
@ EP_ATM_MICROPHYSICS_BEFORE
Definition comin.h:82
@ EP_ATM_GWDRAG_BEFORE
Definition comin.h:90
@ EP_ATM_CHECKPOINT_BEFORE
Definition comin.h:70
@ EP_ATM_CONVECTION_AFTER
Definition comin.h:85
@ EP_ATM_YAC_SYNCDEF_BEFORE
Definition comin.h:55
@ EP_ATM_GWDRAG_AFTER
Definition comin.h:91
@ EP_ATM_CHECKPOINT_AFTER
Definition comin.h:71
@ EP_ATM_ADVECTION_BEFORE
Definition comin.h:72
@ EP_ATM_YAC_DEFCOMP_BEFORE
Definition comin.h:53
@ EP_ATM_CONVECTION_BEFORE
Definition comin.h:84
@ EP_ATM_INIT_FINALIZE
Definition comin.h:59
@ EP_ATM_YAC_DEFCOMP_AFTER
Definition comin.h:54
@ EP_ATM_WRITE_OUTPUT_AFTER
Definition comin.h:69
@ EP_ATM_INTEGRATE_START
Definition comin.h:65
@ EP_ATM_ADVECTION_AFTER
Definition comin.h:73
@ EP_ATM_WRITE_OUTPUT_BEFORE
Definition comin.h:68
@ EP_ATM_TIMELOOP_BEFORE
Definition comin.h:60
@ COMIN_METADATA_TYPEID_BOOL
Definition comin.h:164
@ COMIN_METADATA_TYPEID_INT
Definition comin.h:161
@ COMIN_METADATA_TYPEID_UNDEFINED
Definition comin.h:160
@ COMIN_METADATA_TYPEID_STRING
Definition comin.h:163
@ COMIN_METADATA_TYPEID_DOUBLE
Definition comin.h:162
@ COMIN_SEVERITY_DEBUG
Show debug and more severe messages.
Definition comin.h:185
@ COMIN_SEVERITY_INFO
Show info and more severe messages.
Definition comin.h:186
@ COMIN_SEVERITY_WARNING
Show warning and more severe messages.
Definition comin.h:187
@ COMIN_SEVERITY_ERROR
Show only error messages.
Definition comin.h:188
@ COMIN_ERROR_STATUS
Definition comin.h:116
@ COMIN_ERROR_VAR_METADATA_INCONSISTENT_TYPE
Definition comin.h:146
@ COMIN_ERROR_VAR_GET_CONTAINER_CAN_NOT_HALO_SYNCHRONIZED
Definition comin.h:143
@ COMIN_ERROR_SETUP_COMIN_ALREADY_INITIALIZED
Definition comin.h:126
@ COMIN_ERROR_FATAL
Definition comin.h:150
@ COMIN_ERROR_SETUP_ERRHANDLER_NOT_ASSOCIATED
Definition comin.h:127
@ COMIN_ERROR_CALLBACK_EP_ID_UNKNOWN
Definition comin.h:119
@ COMIN_ERROR_VAR_GET_VARIABLE_NOT_FOUND
Definition comin.h:142
@ COMIN_ERROR_VAR_GET_IRREGULAR_VAR_CAN_NOT_HALO_SYNCHRONIZED
Definition comin.h:144
@ COMIN_ERROR_VAR_REQUEST_EXISTS_IS_LMODEXCLUSIVE
Definition comin.h:131
@ COMIN_ERROR_POINTER_NOT_ASSOCIATED
Definition comin.h:136
@ COMIN_ERROR_VAR_REQUEST_EXISTS_REQUEST_LMODEXCLUSIVE
Definition comin.h:132
@ COMIN_ERROR_VAR_SYNC_HALO_NOT_ASSOCIATED
Definition comin.h:139
@ COMIN_ERROR_DESCRDATA_TIMESTEPLENGTH_NOT_SET
Definition comin.h:149
@ COMIN_ERROR_VAR_GET_VARIABLE_WRONG_TYPE
Definition comin.h:147
@ COMIN_ERROR_VAR_GET_NO_DEVICE
Definition comin.h:141
@ COMIN_ERROR_DESCRDATA_SET_FCT_GLB2LOC
Definition comin.h:120
@ COMIN_ERROR_VAR_REQUEST_AFTER_PRIMARYCONSTRUCTOR
Definition comin.h:130
@ COMIN_ERROR_METADATA_KEY_NOT_FOUND
Definition comin.h:123
@ COMIN_ERROR_VAR_ITEM_NOT_ASSOCIATED
Definition comin.h:134
@ COMIN_ERROR_INDEX_OUT_OF_BOUNDS
Definition comin.h:148
@ COMIN_ERROR_SETUP_ERRHANDLER_NOT_SET
Definition comin.h:128
@ COMIN_ERROR_FIELD_NOT_ALLOCATED
Definition comin.h:135
@ COMIN_INFO
Definition comin.h:114
@ COMIN_ERROR_METADATA_SET_OUTSIDE_PRIMARYCONSTRUCTOR
Definition comin.h:122
@ COMIN_SUCCESS
Definition comin.h:113
@ COMIN_ERROR_TRACER_REQUEST_NOT_FOR_ALL_DOMAINS
Definition comin.h:137
@ COMIN_WARNING
Definition comin.h:115
@ COMIN_ERROR_VAR_DESCRIPTOR_NOT_FOUND
Definition comin.h:133
@ COMIN_ERROR_VAR_SYNC_HALO_NOT_SUPPORTED_ZAXIS
Definition comin.h:145
@ COMIN_ERROR_VAR_SYNC_DEVICE_MEM_NOT_ASSOCIATED
Definition comin.h:138
@ COMIN_ERROR_SETUP_PRECISION_TEST_FAILED
Definition comin.h:129
@ COMIN_ERROR_CALLBACK_COMPLETE
Definition comin.h:118
@ COMIN_ERROR_METADATA_GET_INSIDE_PRIMARYCONSTRUCTOR
Definition comin.h:124
@ COMIN_ERROR_VAR_GET_OUTSIDE_SECONDARY_CONSTRUCTOR
Definition comin.h:140
@ COMIN_ERROR_CALLBACK_REGISTER_OUTSIDE_PRIMARYCONSTRUCTOR
Definition comin.h:117
@ COMIN_ERROR_SETUP_FINALIZE
Definition comin.h:125
@ COMIN_ERROR_DESCRDATA_FINALIZE
Definition comin.h:121
Definition comin.h:26
const struct comin_descrdata_property_t * subtypes
Definition comin.h:340
t_comin_var_descriptor descr
const int jg