Go to the documentation of this file.
31 #include <esio/visibility.h>
75 esio_handle esio_handle_initialize_fortran(MPI_Fint fcomm) ESIO_API;
164 int overwrite) ESIO_API;
234 const char *restart_template,
235 int retain_count) ESIO_API;
259 const char *location,
261 const char *value) ESIO_API;
281 const char *location,
282 const char *name) ESIO_API;
287 #define ESIO_ATTRIBUTE_WRITE_GEN(TYPE) \
289 esio_attribute_write_##TYPE(const esio_handle h, \
290 const char *location, \
296 #define ESIO_ATTRIBUTE_WRITE_GEN_CXX(TYPE) \
297 extern "C++" inline int \
298 esio_attribute_write(const esio_handle h, \
299 const char *location, \
302 { return esio_attribute_write_##TYPE(h,location,name,value); }
305 #define ESIO_ATTRIBUTE_WRITE_GEN_CXX_BY_VALUE(TYPE) \
306 extern "C++" inline int \
307 esio_attribute_write(const esio_handle h, \
308 const char *location, \
311 { return esio_attribute_write_##TYPE(h,location,name,&value); }
314 #define ESIO_ATTRIBUTE_READ_GEN(TYPE) \
316 esio_attribute_read_##TYPE(const esio_handle h, \
317 const char *location, \
323 #define ESIO_ATTRIBUTE_READ_GEN_CXX(TYPE) \
324 extern "C++" inline int \
325 esio_attribute_read(const esio_handle h, \
326 const char *location, \
329 { return esio_attribute_read_##TYPE(h,location,name,value); }
332 #define ESIO_ATTRIBUTE_WRITEV_GEN(TYPE) \
334 esio_attribute_writev_##TYPE(const esio_handle h, \
335 const char *location, \
342 #define ESIO_ATTRIBUTE_WRITEV_GEN_CXX(TYPE) \
343 extern "C++" inline int \
344 esio_attribute_writev(const esio_handle h, \
345 const char *location, \
349 { return esio_attribute_writev_##TYPE(h,location,name,value,ncomponents); }
352 #define ESIO_ATTRIBUTE_READV_GEN(TYPE) \
354 esio_attribute_readv_##TYPE(const esio_handle h, \
355 const char *location, \
362 #define ESIO_ATTRIBUTE_READV_GEN_CXX(TYPE) \
363 extern "C++" inline int \
364 esio_attribute_readv(const esio_handle h, \
365 const char *location, \
369 { return esio_attribute_readv_##TYPE(h,location,name,value,ncomponents); }
395 ESIO_ATTRIBUTE_WRITE_GEN(
double)
399 ESIO_ATTRIBUTE_WRITE_GEN_CXX(
double)
402 ESIO_ATTRIBUTE_WRITE_GEN_CXX_BY_VALUE(
double)
409 ESIO_ATTRIBUTE_WRITE_GEN(
float)
413 ESIO_ATTRIBUTE_WRITE_GEN_CXX(
float)
416 ESIO_ATTRIBUTE_WRITE_GEN_CXX_BY_VALUE(
float)
423 ESIO_ATTRIBUTE_WRITE_GEN(
int)
427 ESIO_ATTRIBUTE_WRITE_GEN_CXX(
int)
430 ESIO_ATTRIBUTE_WRITE_GEN_CXX_BY_VALUE(
int)
445 ESIO_ATTRIBUTE_READ_GEN(
double)
449 ESIO_ATTRIBUTE_READ_GEN_CXX(
double)
456 ESIO_ATTRIBUTE_READ_GEN(
float)
460 ESIO_ATTRIBUTE_READ_GEN_CXX(
float)
467 ESIO_ATTRIBUTE_READ_GEN(
int)
471 ESIO_ATTRIBUTE_READ_GEN_CXX(
int)
498 ESIO_ATTRIBUTE_WRITEV_GEN(
double)
502 ESIO_ATTRIBUTE_WRITEV_GEN_CXX(
double)
509 ESIO_ATTRIBUTE_WRITEV_GEN(
float)
513 ESIO_ATTRIBUTE_WRITEV_GEN_CXX(
float)
520 ESIO_ATTRIBUTE_WRITEV_GEN(
int)
524 ESIO_ATTRIBUTE_WRITEV_GEN_CXX(
int)
540 ESIO_ATTRIBUTE_READV_GEN(
double)
544 ESIO_ATTRIBUTE_READV_GEN_CXX(
double)
551 ESIO_ATTRIBUTE_READV_GEN(
float)
555 ESIO_ATTRIBUTE_READV_GEN_CXX(
float)
562 ESIO_ATTRIBUTE_READV_GEN(
int)
566 ESIO_ATTRIBUTE_READV_GEN_CXX(
int)
587 const char *location,
589 int *ncomponents) ESIO_API;
611 int aglobal,
int astart,
int alocal) ESIO_API;
631 int bglobal,
int bstart,
int blocal,
632 int aglobal,
int astart,
int alocal) ESIO_API;
655 int cglobal,
int cstart,
int clocal,
656 int bglobal,
int bstart,
int blocal,
657 int aglobal,
int astart,
int alocal) ESIO_API;
667 int *aglobal,
int *astart,
int *alocal) ESIO_API;
677 int *bglobal,
int *bstart,
int *blocal,
678 int *aglobal,
int *astart,
int *alocal) ESIO_API;
688 int *cglobal,
int *cstart,
int *clocal,
689 int *bglobal,
int *bstart,
int *blocal,
690 int *aglobal,
int *astart,
int *alocal) ESIO_API;
695 #undef ESIO_ATTRIBUTE_WRITE_GEN
696 #undef ESIO_ATTRIBUTE_READ_GEN
697 #undef ESIO_ATTRIBUTE_WRITEV_GEN
698 #undef ESIO_ATTRIBUTE_READV_GEN
700 #undef ESIO_ATTRIBUTE_WRITE_GEN_CXX
701 #undef ESIO_ATTRIBUTE_READ_GEN_CXX
702 #undef ESIO_ATTRIBUTE_WRITEV_GEN_CXX
703 #undef ESIO_ATTRIBUTE_READV_GEN_CXX
706 #define ESIO_LINE_WRITE_GEN(TYPE) \
708 esio_line_write_##TYPE(const esio_handle h, \
712 const char *comment) \
716 #define ESIO_LINE_WRITE_GEN_CXX(TYPE) \
717 extern "C++" inline int \
718 esio_line_write(const esio_handle h, \
722 const char *comment = 0) \
723 { return esio_line_write_##TYPE(h,name,line,astride,comment); }
726 #define ESIO_LINE_READ_GEN(TYPE) \
728 esio_line_read_##TYPE(const esio_handle h, \
735 #define ESIO_LINE_READ_GEN_CXX(TYPE) \
736 extern "C++" inline int \
737 esio_line_read(const esio_handle h, \
741 { return esio_line_read_##TYPE(h,name,line,astride); }
744 #define ESIO_LINE_WRITEV_GEN(TYPE) \
746 esio_line_writev_##TYPE(const esio_handle h, \
751 const char *comment) \
755 #define ESIO_LINE_WRITEV_GEN_CXX(TYPE) \
756 extern "C++" inline int \
757 esio_line_writev(const esio_handle h, \
762 const char *comment = 0) \
763 { return esio_line_writev_##TYPE(h,name,line,astride,ncomponents, \
767 #define ESIO_LINE_READV_GEN(TYPE) \
769 esio_line_readv_##TYPE(const esio_handle h, \
777 #define ESIO_LINE_READV_GEN_CXX(TYPE) \
778 extern "C++" inline int \
779 esio_line_readv(const esio_handle h, \
784 { return esio_line_readv_##TYPE(h,name,line,astride,ncomponents); }
813 ESIO_LINE_WRITE_GEN(
double)
817 ESIO_LINE_WRITE_GEN_CXX(
double)
824 ESIO_LINE_WRITE_GEN(
float)
828 ESIO_LINE_WRITE_GEN_CXX(
float)
835 ESIO_LINE_WRITE_GEN(
int)
839 ESIO_LINE_WRITE_GEN_CXX(
int)
856 ESIO_LINE_READ_GEN(
double)
860 ESIO_LINE_READ_GEN_CXX(
double)
867 ESIO_LINE_READ_GEN(
float)
871 ESIO_LINE_READ_GEN_CXX(
float)
878 ESIO_LINE_READ_GEN(
int)
882 ESIO_LINE_READ_GEN_CXX(
int)
899 int *aglobal) ESIO_API;
930 ESIO_LINE_WRITEV_GEN(
double)
934 ESIO_LINE_WRITEV_GEN_CXX(
double)
941 ESIO_LINE_WRITEV_GEN(
float)
945 ESIO_LINE_WRITEV_GEN_CXX(
float)
952 ESIO_LINE_WRITEV_GEN(
int)
956 ESIO_LINE_WRITEV_GEN_CXX(
int)
975 ESIO_LINE_READV_GEN(
double)
979 ESIO_LINE_READV_GEN_CXX(
double)
986 ESIO_LINE_READV_GEN(
float)
990 ESIO_LINE_READV_GEN_CXX(
float)
997 ESIO_LINE_READV_GEN(
int)
1001 ESIO_LINE_READV_GEN_CXX(
int)
1023 int *ncomponents) ESIO_API;
1027 #undef ESIO_LINE_WRITE_GEN
1028 #undef ESIO_LINE_READ_GEN
1029 #undef ESIO_LINE_WRITEV_GEN
1030 #undef ESIO_LINE_READV_GEN
1032 #undef ESIO_LINE_WRITE_GEN_CXX
1033 #undef ESIO_LINE_READ_GEN_CXX
1034 #undef ESIO_LINE_WRITEV_GEN_CXX
1035 #undef ESIO_LINE_READV_GEN_CXX
1038 #define ESIO_PLANE_WRITE_GEN(TYPE) \
1040 esio_plane_write_##TYPE(const esio_handle h, \
1042 const TYPE *plane, \
1043 int bstride, int astride, \
1044 const char *comment) \
1048 #define ESIO_PLANE_WRITE_GEN_CXX(TYPE) \
1049 extern "C++" inline int \
1050 esio_plane_write(const esio_handle h, \
1052 const TYPE *plane, \
1053 int bstride, int astride, \
1054 const char *comment = 0) \
1055 { return esio_plane_write_##TYPE(h,name,plane,bstride,astride,comment); }
1058 #define ESIO_PLANE_READ_GEN(TYPE) \
1060 esio_plane_read_##TYPE(const esio_handle h, \
1063 int bstride, int astride) \
1067 #define ESIO_PLANE_READ_GEN_CXX(TYPE) \
1068 extern "C++" inline int \
1069 esio_plane_read(const esio_handle h, \
1072 int bstride, int astride) \
1073 { return esio_plane_read_##TYPE(h,name,plane,bstride,astride); }
1076 #define ESIO_PLANE_WRITEV_GEN(TYPE) \
1078 esio_plane_writev_##TYPE(const esio_handle h, \
1080 const TYPE *plane, \
1081 int bstride, int astride, \
1083 const char *comment) \
1087 #define ESIO_PLANE_WRITEV_GEN_CXX(TYPE) \
1088 extern "C++" inline int \
1089 esio_plane_writev(const esio_handle h, \
1091 const TYPE *plane, \
1092 int bstride, int astride, \
1094 const char *comment = 0) \
1095 { return esio_plane_writev_##TYPE(h,name,plane,bstride,astride,ncomponents, \
1099 #define ESIO_PLANE_READV_GEN(TYPE) \
1101 esio_plane_readv_##TYPE(const esio_handle h, \
1104 int bstride, int astride, \
1109 #define ESIO_PLANE_READV_GEN_CXX(TYPE) \
1110 extern "C++" inline int \
1111 esio_plane_readv(const esio_handle h, \
1114 int bstride, int astride, \
1116 { return esio_plane_readv_##TYPE(h,name,plane,bstride,astride,ncomponents); }
1149 ESIO_PLANE_WRITE_GEN(
double)
1153 ESIO_PLANE_WRITE_GEN_CXX(
double)
1160 ESIO_PLANE_WRITE_GEN(
float)
1164 ESIO_PLANE_WRITE_GEN_CXX(
float)
1171 ESIO_PLANE_WRITE_GEN(
int)
1175 ESIO_PLANE_WRITE_GEN_CXX(
int)
1196 ESIO_PLANE_READ_GEN(
double)
1200 ESIO_PLANE_READ_GEN_CXX(
double)
1207 ESIO_PLANE_READ_GEN(
float)
1211 ESIO_PLANE_READ_GEN_CXX(
float)
1218 ESIO_PLANE_READ_GEN(
int)
1222 ESIO_PLANE_READ_GEN_CXX(
int)
1243 int *bglobal,
int *aglobal) ESIO_API;
1277 ESIO_PLANE_WRITEV_GEN(
double)
1281 ESIO_PLANE_WRITEV_GEN_CXX(
double)
1288 ESIO_PLANE_WRITEV_GEN(
float)
1292 ESIO_PLANE_WRITEV_GEN_CXX(
float)
1299 ESIO_PLANE_WRITEV_GEN(
int)
1303 ESIO_PLANE_WRITEV_GEN_CXX(
int)
1326 ESIO_PLANE_READV_GEN(
double)
1330 ESIO_PLANE_READV_GEN_CXX(
double)
1337 ESIO_PLANE_READV_GEN(
float)
1341 ESIO_PLANE_READV_GEN_CXX(
float)
1348 ESIO_PLANE_READV_GEN(
int)
1352 ESIO_PLANE_READV_GEN_CXX(
int)
1376 int *bglobal,
int *aglobal,
1377 int *ncomponents) ESIO_API;
1381 #undef ESIO_PLANE_WRITE_GEN
1382 #undef ESIO_PLANE_READ_GEN
1383 #undef ESIO_PLANE_WRITEV_GEN
1384 #undef ESIO_PLANE_READV_GEN
1386 #undef ESIO_PLANE_WRITE_GEN_CXX
1387 #undef ESIO_PLANE_READ_GEN_CXX
1388 #undef ESIO_PLANE_WRITEV_GEN_CXX
1389 #undef ESIO_PLANE_READV_GEN_CXX
1392 #define ESIO_FIELD_WRITE_GEN(TYPE) \
1394 esio_field_write_##TYPE(const esio_handle h, \
1396 const TYPE *field, \
1397 int cstride, int bstride, int astride, \
1398 const char *comment) \
1402 #define ESIO_FIELD_WRITE_GEN_CXX(TYPE) \
1403 extern "C++" inline int \
1404 esio_field_write(const esio_handle h, \
1406 const TYPE *field, \
1407 int cstride, int bstride, int astride, \
1408 const char *comment = 0) \
1409 { return esio_field_write_##TYPE(h,name,field,cstride,bstride,astride, \
1413 #define ESIO_FIELD_READ_GEN(TYPE) \
1415 esio_field_read_##TYPE(const esio_handle h, \
1418 int cstride, int bstride, int astride) \
1422 #define ESIO_FIELD_READ_GEN_CXX(TYPE) \
1423 extern "C++" inline int \
1424 esio_field_read(const esio_handle h, \
1427 int cstride, int bstride, int astride) \
1428 { return esio_field_read_##TYPE(h,name,field,cstride,bstride,astride); }
1431 #define ESIO_FIELD_WRITEV_GEN(TYPE) \
1433 esio_field_writev_##TYPE(const esio_handle h, \
1435 const TYPE *field, \
1436 int cstride, int bstride, int astride, \
1438 const char *comment) \
1442 #define ESIO_FIELD_WRITEV_GEN_CXX(TYPE) \
1443 extern "C++" inline int \
1444 esio_field_writev(const esio_handle h, \
1446 const TYPE *field, \
1447 int cstride, int bstride, int astride, \
1449 const char *comment = 0) \
1450 { return esio_field_writev_##TYPE(h,name,field,cstride,bstride,astride, \
1451 ncomponents,comment); }
1454 #define ESIO_FIELD_READV_GEN(TYPE) \
1456 esio_field_readv_##TYPE(const esio_handle h, \
1459 int cstride, int bstride, int astride, \
1464 #define ESIO_FIELD_READV_GEN_CXX(TYPE) \
1465 extern "C++" inline int \
1466 esio_field_readv(const esio_handle h, \
1469 int cstride, int bstride, int astride, \
1471 { return esio_field_readv_##TYPE(h,name,field,cstride,bstride,astride, \
1507 ESIO_FIELD_WRITE_GEN(
double)
1511 ESIO_FIELD_WRITE_GEN_CXX(
double)
1518 ESIO_FIELD_WRITE_GEN(
float)
1522 ESIO_FIELD_WRITE_GEN_CXX(
float)
1529 ESIO_FIELD_WRITE_GEN(
int)
1533 ESIO_FIELD_WRITE_GEN_CXX(
int)
1556 ESIO_FIELD_READ_GEN(
double)
1560 ESIO_FIELD_READ_GEN_CXX(
double)
1567 ESIO_FIELD_READ_GEN(
float)
1571 ESIO_FIELD_READ_GEN_CXX(
float)
1578 ESIO_FIELD_READ_GEN(
int)
1582 ESIO_FIELD_READ_GEN_CXX(
int)
1605 int *cglobal,
int *bglobal,
int *aglobal) ESIO_API;
1642 ESIO_FIELD_WRITEV_GEN(
double)
1646 ESIO_FIELD_WRITEV_GEN_CXX(
double)
1653 ESIO_FIELD_WRITEV_GEN(
float)
1657 ESIO_FIELD_WRITEV_GEN_CXX(
float)
1664 ESIO_FIELD_WRITEV_GEN(
int)
1668 ESIO_FIELD_WRITEV_GEN_CXX(
int)
1693 ESIO_FIELD_READV_GEN(
double)
1697 ESIO_FIELD_READV_GEN_CXX(
double)
1704 ESIO_FIELD_READV_GEN(
float)
1708 ESIO_FIELD_READV_GEN_CXX(
float)
1715 ESIO_FIELD_READV_GEN(
int)
1719 ESIO_FIELD_READV_GEN_CXX(
int)
1745 int *cglobal,
int *bglobal,
int *aglobal,
1746 int *ncomponents) ESIO_API;
1750 #undef ESIO_FIELD_WRITE_GEN
1751 #undef ESIO_FIELD_READ_GEN
1752 #undef ESIO_FIELD_WRITEV_GEN
1753 #undef ESIO_FIELD_READV_GEN
1755 #undef ESIO_FIELD_WRITE_GEN_CXX
1756 #undef ESIO_FIELD_READ_GEN_CXX
1757 #undef ESIO_FIELD_WRITEV_GEN_CXX
1758 #undef ESIO_FIELD_READV_GEN_CXX
int esio_field_size(const esio_handle h, const char *name, int *cglobal, int *bglobal, int *aglobal)
Write a scalar-valued double field.
int esio_file_close(esio_handle h)
Close any currently open file.
int esio_plane_established(esio_handle h, int *bglobal, int *bstart, int *blocal, int *aglobal, int *astart, int *alocal)
Retrieve any parallel decomposition previously established for plane operations.
int esio_line_established(esio_handle h, int *aglobal, int *astart, int *alocal)
Retrieve any parallel decomposition previously established for line operations.
int esio_field_layout_get(const esio_handle h)
Get the default layout associated with the given handle.
esio_handle esio_handle_initialize(MPI_Comm comm)
Initialize a handle against the given MPI communicator.
int esio_attribute_sizev(const esio_handle h, const char *location, const char *name, int *ncomponents)
Write a vector-valued double attribute.
int esio_line_size(const esio_handle h, const char *name, int *aglobal)
Write a scalar-valued double line.
int esio_field_layout_set(esio_handle h, int layout_index)
Set the default layout associated with the given handle.
int esio_string_set(const esio_handle h, const char *location, const char *name, const char *value)
Set a string-valued attribute.
int esio_field_sizev(const esio_handle h, const char *name, int *cglobal, int *bglobal, int *aglobal, int *ncomponents)
Write a vector-valued double field.
int esio_plane_sizev(const esio_handle h, const char *name, int *bglobal, int *aglobal, int *ncomponents)
Write a vector-valued double plane.
int esio_line_sizev(const esio_handle h, const char *name, int *aglobal, int *ncomponents)
Write a vector-valued double line.
int esio_file_flush(esio_handle h)
Flush buffers associated with any currently open file.
int esio_file_create(esio_handle h, const char *file, int overwrite)
Create a new file or overwrite an existing one.
char * esio_file_path(const esio_handle h)
Get the canonical path to the currently open file.
int esio_field_establish(esio_handle h, int cglobal, int cstart, int clocal, int bglobal, int bstart, int blocal, int aglobal, int astart, int alocal)
Establish the parallel decomposition to use for subsequent field operations.
int esio_plane_establish(esio_handle h, int bglobal, int bstart, int blocal, int aglobal, int astart, int alocal)
Establish the parallel decomposition to use for subsequent plane operations.
int esio_field_established(esio_handle h, int *cglobal, int *cstart, int *clocal, int *bglobal, int *bstart, int *blocal, int *aglobal, int *astart, int *alocal)
Retrieve any parallel decomposition previously established for field operations.
int esio_field_layout_count(void)
Query the number of layouts available within ESIO.
int esio_handle_comm_rank(const esio_handle h, int *rank)
Retrieve the rank of the local MPI process as seen by the MPI communicator over which the handle coll...
int esio_file_close_restart(esio_handle h, const char *restart_template, int retain_count)
Close the currently open file and rename it to match the path given in restart_template.
int esio_plane_size(const esio_handle h, const char *name, int *bglobal, int *aglobal)
Write a scalar-valued double plane.
int esio_file_open(esio_handle h, const char *file, int readwrite)
Open an existing file.
int esio_line_establish(esio_handle h, int aglobal, int astart, int alocal)
Establish the parallel decomposition to use for subsequent line operations.
int esio_handle_finalize(esio_handle h)
Finalize a handle.
int esio_file_clone(esio_handle h, const char *srcfile, const char *dstfile, int overwrite)
Create and open a new file by cloning the contents of an existing file.
char * esio_string_get(const esio_handle h, const char *location, const char *name)
Get a string-valued attribute.
int esio_handle_comm_size(const esio_handle h, int *size)
Retrieve the size of the MPI communicator over which the handle collectively operates.
struct esio_handle_s * esio_handle
An opaque type following ESIO's handle concept.
Definition: esio.h:44
Generated on Sat Jul 4 2026 17:52:45 for ESIO
by
doxygen
1.8.17