BISICLES AMR ice sheet model  0.9
cwrapper.H
Go to the documentation of this file.
1 #ifdef CH_LANG_CC
2 /*
3 * _______ __
4 * / ___/ / ___ __ _ / / ___
5 * / /__/ _ \/ _ \/ V \/ _ \/ _ \
6 * \___/_//_/\___/_/_/_/_.__/\___/
7 * Please refer to Copyright.txt, in Chombo's root directory.
8 */
9 #endif
10 
11 #ifndef CWRAPPER_H
12 #define CWRAPPER_H
13 #include "NamespaceHeader.H"
14 
22 extern "C"
23 {
24 #ifndef CH_MPI
25 #define MPI_Comm int
26 #endif
27 
41  void bisicles_new_instance(int *instance_key, const char *input_fname, MPI_Comm comm);
42 
44  void bisicles_free_instance(int *instance_key);
45 
47 
77  void bisicles_set_2d_data(int *instance_key, double *data_ptr, const int *field,
78  const double *dx, const int *dims,
79  const int *boxlo, const int *boxhi);
111  void bisicles_set_2d_geometry(int *instance_key, double *thck_data_ptr, double *topg_data_ptr,
112  const double *dx, const int *dims,
113  const int *boxlo, const int *boxhi);
114 
143  void bisicles_get_2d_data(int *intance_id, double *data_ptr, const int *field,
144  const double *dx, const int *dims,
145  const int *boxlo, const int *boxhi);
146 
147 
148 
158  void bisicles_push_thin_ice(int *intance_id, double *data_ptr, const double *thin_ice_limit,
159  const double *dx, const int *dims,
160  const int *boxlo, const int *boxhi);
170  void bisicles_pop_thin_ice(int *intance_id, double *data_ptr, const double *thin_ice_limit,
171  const double *dx, const int *dims,
172  const int *boxlo, const int *boxhi);
173 
175  void bisicles_init_instance(int *instance_key);
177  void bisicles_advance(int *instance_key, double *start_time, double *max_time, int *max_step);
178 
180  void bisicles_write_checkpoint(int *instance_key);
181  //write a plot file
182  void bisicles_write_plot(int *instance_key);
184  void bisicles_read_checkpoint(int *instance_key, const char *checkpoint_fname);
185 
186  void bisicles_set_header_int(int *instance_key, const char *attr_key, const int *val);
187  void bisicles_set_header_dble(int *instance_key, const char *attr_key, const double *val);
188  void bisicles_set_header_char(int *instance_key, const char *attr_key, const char *val);
189  void bisicles_get_header_int(int *instance_key, const char *attr_key, int *val);
190  void bisicles_get_header_dble(int *instance_key, const char *attr_key, double *val);
191  void bisicles_get_header_char(int *instance_key, const char *attr_key, char *val);
192 
193  // FORTRAN compatibility stuff : function foo gets a f_foo_ and f_foo
194  void f_bisicles_new_instance_(int *instance_key, char *input_fname, const int *len_fname, const int *mpi_comm);
195  void f_bisicles_free_instance_(int *instance_key);
196  void f_bisicles_set_2d_data_(int *instance_key, double *data_ptr, const int *field,
197  const double *dx, const int *dims,
198  const int *boxlo, const int *boxhi);
199  void f_bisicles_set_2d_geometry_(int *instance_key, double *thck_data_ptr, double *topg_data_ptr,
200  const double *dx, const int *dims,
201  const int *boxlo, const int *boxhi);
202  void f_bisicles_get_2d_data_(int *intance_id, double *data_ptr, const int *field,
203  const double *dx, const int *dims,
204  const int *boxlo, const int *boxhi);
205 
206  void f_bisicles_push_thin_ice_(int *intance_id, double *data_ptr, const double *thin_ice_limit,
207  const double *dx, const int *dims,
208  const int *boxlo, const int *boxhi);
209 
210  void f_bisicles_pop_thin_ice_(int *intance_id, double *data_ptr, const double *thin_ice_limit,
211  const double *dx, const int *dims,
212  const int *boxlo, const int *boxhi);
213 
214  void f_bisicles_init_instance_(int *instance_key);
215  void f_bisicles_advance_(int *instance_key, double *start_time, double *max_time, int *max_step);
216  void f_bisicles_write_checkpoint_(int *instance_key);
217  void f_bisicles_write_plot_(int *instance_key);
218  void f_bisicles_read_checkpoint_(int *instance_key, char *checkpoint_fname, const int *len_fname);
219  void f_bisicles_set_header_int_(int *instance_key, char *attr_key, const int *attr_key_len, const int *val);
220  void f_bisicles_set_header_dble_(int *instance_key, char *attr_key, const int *attr_key_len, const double *val);
221  void f_bisicles_set_header_char_(int *instance_key, char *attr_key, const int *attr_key_len, char *val, const int *len_val);
222  void f_bisicles_get_header_int_(int *instance_key, char *attr_key, const int *attr_key_len, int *val);
223  void f_bisicles_get_header_dble_(int *instance_key, char *attr_key, const int *attr_key_len, double *val);
224  void f_bisicles_get_header_char_(int *instance_key, char *attr_key, const int *attr_key_len, char *val, const int *len_val);
225 
226 
227  void f_bisicles_new_instance(int *instance_key, char *input_fname, const int *len_fname, const int *mpi_comm);
228  void f_bisicles_free_instance(int *instance_key);
229  void f_bisicles_set_2d_data(int *instance_key, double *data_ptr, const int *field,
230  const double *dx, const int *dims,
231  const int *boxlo, const int *boxhi);
232  void f_bisicles_set_2d_geometry(int *instance_key, double *thck_data_ptr, double *topg_data_ptr,
233  const double *dx, const int *dims,
234  const int *boxlo, const int *boxhi);
235  void f_bisicles_get_2d_data(int *intance_id, double *data_ptr, const int *field,
236  const double *dx, const int *dims,
237  const int *boxlo, const int *boxhi);
238 
239  void f_bisicles_push_thin_ice(int *intance_id, double *data_ptr, const double *thin_ice_limit,
240  const double *dx, const int *dims,
241  const int *boxlo, const int *boxhi);
242 
243  void f_bisicles_pop_thin_ice(int *intance_id, double *data_ptr, const double *thin_ice_limit,
244  const double *dx, const int *dims,
245  const int *boxlo, const int *boxhi);
246 
247  void f_bisicles_init_instance(int *instance_key);
248  void f_bisicles_advance(int *instance_key, double *start_time, double *max_time, int *max_step);
249  void f_bisicles_write_checkpoint(int *instance_key);
250  void f_bisicles_write_plot(int *instance_key);
251  void f_bisicles_read_checkpoint(int *instance_key, char *checkpoint_fname, const int *len_fname);
252  void f_bisicles_set_header_int(int *instance_key, char *attr_key, const int *attr_key_len, const int *val);
253  void f_bisicles_set_header_dble(int *instance_key, char *attr_key, const int *attr_key_len, const double *val);
254  void f_bisicles_set_header_char(int *instance_key, char *attr_key, const int *attr_key_len, char *val, const int *len_val);
255  void f_bisicles_get_header_int(int *instance_key, char *attr_key, const int *attr_key_len, int *val);
256  void f_bisicles_get_header_dble(int *instance_key, char *attr_key, const int *attr_key_len, double *val);
257  void f_bisicles_get_header_char(int *instance_key, char *attr_key, const int *attr_key_len, char *val, const int *len_val);
258 }
259 
260 
261 
262 //set header data
263 template<typename T>
264 void bisicles_set_header(int *instance_key, const char *attr_key, const T *val);
265 //retrieve header data
266 template<typename T>
267 void bisicles_get_header(int *instance_key, const char *attr_key, T *val);
268 void bisicles_get_header(int *instance_key, const char *key, char *val);
269 #include "NamespaceFooter.H"
270 #endif
void f_bisicles_free_instance_(int *instance_key)
Definition: cwrapper.cpp:147
void bisicles_set_header_dble(int *instance_key, const char *attr_key, const double *val)
Definition: cwrapper.cpp:1554
void f_bisicles_advance_(int *instance_key, double *start_time, double *max_time, int *max_step)
Definition: cwrapper.cpp:199
void bisicles_get_header_char(int *instance_key, const char *attr_key, char *val)
Definition: cwrapper.cpp:1573
void bisicles_set_header_int(int *instance_key, const char *attr_key, const int *val)
Definition: cwrapper.cpp:272
void bisicles_get_2d_data(int *intance_id, double *data_ptr, const int *field, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Fill a rectangular array with 2D data from a BISICLES instance.
Definition: cwrapper.cpp:1421
void f_bisicles_advance(int *instance_key, double *start_time, double *max_time, int *max_step)
Definition: cwrapper.cpp:249
void bisicles_pop_thin_ice(int *intance_id, double *data_ptr, const double *thin_ice_limit, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
pop ice from the top of the sheet where ice thinner is than thin_ice_limit, record the quantity neede...
Definition: cwrapper.cpp:1709
void bisicles_set_header_char(int *instance_key, const char *attr_key, const char *val)
Definition: cwrapper.cpp:1558
void bisicles_write_checkpoint(int *instance_key)
write a checkpoint file
Definition: cwrapper.cpp:1437
void f_bisicles_set_2d_data(int *instance_key, double *data_ptr, const int *field, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:220
void bisicles_get_header_int(int *instance_key, const char *attr_key, int *val)
Definition: cwrapper.cpp:1563
void f_bisicles_write_plot(int *instance_key)
Definition: cwrapper.cpp:261
void f_bisicles_get_header_dble_(int *instance_key, char *attr_key, const int *attr_key_len, double *val)
Definition: cwrapper.cpp:346
void f_bisicles_set_header_dble_(int *instance_key, char *attr_key, const int *attr_key_len, const double *val)
Definition: cwrapper.cpp:323
void bisicles_free_instance(int *instance_key)
free the BISICLES instance specified by instance_key
Definition: cwrapper.cpp:1353
void f_bisicles_get_2d_data(int *intance_id, double *data_ptr, const int *field, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:235
void f_bisicles_read_checkpoint_(int *instance_key, char *checkpoint_fname, const int *len_fname)
Definition: cwrapper.cpp:163
void f_bisicles_get_header_int(int *instance_key, char *attr_key, const int *attr_key_len, int *val)
void bisicles_init_instance(int *instance_key)
initialize bisicles
Definition: cwrapper.cpp:1337
void f_bisicles_get_header_char_(int *instance_key, char *attr_key, const int *attr_key_len, char *val, const int *len_val)
Definition: cwrapper.cpp:351
void f_bisicles_free_instance(int *instance_key)
Definition: cwrapper.cpp:216
void bisicles_set_2d_data(int *instance_key, double *data_ptr, const int *field, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Instruct BISICLES to read 2d data from an array at data_ptr.
Definition: cwrapper.cpp:1406
void f_bisicles_write_checkpoint_(int *instance_key)
Definition: cwrapper.cpp:152
void bisicles_get_header(int *instance_key, const char *attr_key, T *val)
get header data
Definition: cwrapper.cpp:1515
void f_bisicles_read_checkpoint(int *instance_key, char *checkpoint_fname, const int *len_fname)
Definition: cwrapper.cpp:266
void bisicles_new_instance(int *instance_key, const char *input_fname, MPI_Comm comm)
create a new BISICLES instance, return an integer key
Definition: cwrapper.cpp:1288
void f_bisicles_get_header_dble(int *instance_key, char *attr_key, const int *attr_key_len, double *val)
Definition: cwrapper.cpp:304
void bisicles_push_thin_ice(int *intance_id, double *data_ptr, const double *thin_ice_limit, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
push thin ice onto the ice sheet where thickness < thin_ice_limit, record the quantity needed in data...
Definition: cwrapper.cpp:1688
void f_bisicles_get_header_int_(int *instance_key, char *attr_key, const int *attr_key_len, int *val)
Definition: cwrapper.cpp:340
void f_bisicles_write_checkpoint(int *instance_key)
Definition: cwrapper.cpp:255
void f_bisicles_get_header_char(int *instance_key, char *attr_key, const int *attr_key_len, char *val, const int *len_val)
Definition: cwrapper.cpp:309
void f_bisicles_set_header_char(int *instance_key, char *attr_key, const int *attr_key_len, char *val, const int *len_val)
Definition: cwrapper.cpp:291
void f_bisicles_set_2d_geometry_(int *instance_key, double *thck_data_ptr, double *topg_data_ptr, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:178
void f_bisicles_pop_thin_ice_(int *intance_id, double *data_ptr, const double *thin_ice_limit, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:1743
void bisicles_set_header(int *instance_key, const char *attr_key, const T *val)
set header data
Definition: cwrapper.cpp:1495
void f_bisicles_set_header_dble(int *instance_key, char *attr_key, const int *attr_key_len, const double *val)
Definition: cwrapper.cpp:285
void f_bisicles_write_plot_(int *instance_key)
Definition: cwrapper.cpp:157
void f_bisicles_set_header_char_(int *instance_key, char *attr_key, const int *attr_key_len, char *val, const int *len_val)
Definition: cwrapper.cpp:328
void bisicles_get_header_dble(int *instance_key, const char *attr_key, double *val)
Definition: cwrapper.cpp:1568
void f_bisicles_new_instance_(int *instance_key, char *input_fname, const int *len_fname, const int *mpi_comm)
Definition: cwrapper.cpp:135
void bisicles_write_plot(int *instance_key)
write a plot file
Definition: cwrapper.cpp:1455
void bisicles_advance(int *instance_key, double *start_time, double *max_time, int *max_step)
step BISICLES forward in time by up to max_time or max_steps (whichever is sooner) ...
Definition: cwrapper.cpp:1377
void f_bisicles_new_instance(int *instance_key, char *input_fname, const int *len_fname, const int *mpi_comm)
Definition: cwrapper.cpp:206
void f_bisicles_init_instance_(int *instance_key)
Definition: cwrapper.cpp:194
void f_bisicles_set_2d_data_(int *instance_key, double *data_ptr, const int *field, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:170
void f_bisicles_push_thin_ice(int *intance_id, double *data_ptr, const double *thin_ice_limit, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:1722
void bisicles_set_2d_geometry(int *instance_key, double *thck_data_ptr, double *topg_data_ptr, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Instruct BISICLES to read 2d geometry (ice thickness and bedrock eleveation) data from an arrays at t...
Definition: cwrapper.cpp:1390
void f_bisicles_push_thin_ice_(int *intance_id, double *data_ptr, const double *thin_ice_limit, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:1736
void bisicles_read_checkpoint(int *instance_key, const char *checkpoint_fname)
read a checkpoint file
Definition: cwrapper.cpp:1475
void f_bisicles_init_instance(int *instance_key)
Definition: cwrapper.cpp:244
void f_bisicles_get_2d_data_(int *intance_id, double *data_ptr, const int *field, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:185
void f_bisicles_set_header_int(int *instance_key, char *attr_key, const int *attr_key_len, const int *val)
Definition: cwrapper.cpp:280
void f_bisicles_pop_thin_ice(int *intance_id, double *data_ptr, const double *thin_ice_limit, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:1729
void f_bisicles_set_2d_geometry(int *instance_key, double *thck_data_ptr, double *topg_data_ptr, const double *dx, const int *dims, const int *boxlo, const int *boxhi)
Definition: cwrapper.cpp:228
void f_bisicles_set_header_int_(int *instance_key, char *attr_key, const int *attr_key_len, const int *val)
Definition: cwrapper.cpp:317