esio  0.1.9
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Types | Macros
esio.F90 File Reference

Detailed Description

Provides ESIO's Fortran-based public API following the library's usage concepts.

The Fortran API almost exactly follows ESIO's C-based public API documented within esio.h with only a few exceptions:

  1. All Fortran functionality is exposed through subroutines instead of the C API's functions.
  2. The Fortran API uses integer, single, and double to refer to the types the C API calls int, float and double. Moreover, the Fortran API provides generic interfaces for all read and write operations. This allows you to, for example, invoke esio::esio_field_write() and have it correctly determine which precision your field data possesses.
  3. The intent(in) and intent(out) semantics of each call are identical to the C version everywhere with the exception of esio::esio_handle_initialize(), esio::esio_file_path(), esio::esio_string_get(), and esio::esio_field_layout_get(). These routines have an extra intent(out) parameter in Fortran.
  4. Logical-like int arguments within the C API, for example esio_file_create()'s overwrite and esio_file_open()'s readwrite, have Fortran type logical.
  5. The line, plane, and field routines place their ncomponents, A, B, and C direction arguments in "Fortran-order" (that is, fastest index first).
  6. All astart, bstart, and cstart arguments are one-indexed within Fortran as opposed to the C API's zero-based indexing.
  7. Stride arguments are optional within Fortran and default to zero. As in a C API, a zero stride is shorthand for specifying that the associated data is contiguous in memory.
  8. All subroutines contain an optional intent(out) ierr parameter that will be zero on successful return and non-zero on failure. All methods in this module also invoke ESIO's error handling mechanisms on failure.
  9. A custom error handler may be registered through the C API in error.h, but no mechanism is provided to register an error handler within Fortran.

Data Types

module  esio
 
interface  esio::esio_attribute_write
 
interface  esio::esio_attribute_read
 
interface  esio::esio_attribute_writev
 
interface  esio::esio_attribute_readv
 
interface  esio::esio_line_write
 
interface  esio::esio_line_read
 
interface  esio::esio_line_writev
 
interface  esio::esio_line_readv
 
interface  esio::esio_plane_write
 
interface  esio::esio_plane_read
 
interface  esio::esio_plane_writev
 
interface  esio::esio_plane_readv
 
interface  esio::esio_field_write
 
interface  esio::esio_field_read
 
interface  esio::esio_field_writev
 
interface  esio::esio_field_readv
 

Macros

#define enumerator   integer(c_int), parameter
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_attribute_write_double"
 
#define IMPL   esio_attribute_write_double_c
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_attribute_write_float"
 
#define IMPL   esio_attribute_write_float_c
 
#define FINTENT   intent(in)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_attribute_write_int"
 
#define IMPL   esio_attribute_write_int_c
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_attribute_read_double"
 
#define IMPL   esio_attribute_read_double_c
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_attribute_read_float"
 
#define IMPL   esio_attribute_read_float_c
 
#define FINTENT   intent(out)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_attribute_read_int"
 
#define IMPL   esio_attribute_read_int_c
 
#define VECTORVALUED
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_attribute_writev_double"
 
#define IMPL   esio_attribute_writev_double_c
 
#define VECTORVALUED
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_attribute_writev_float"
 
#define IMPL   esio_attribute_writev_float_c
 
#define VECTORVALUED
 
#define FINTENT   intent(in)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_attribute_writev_int"
 
#define IMPL   esio_attribute_writev_int_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_attribute_readv_double"
 
#define IMPL   esio_attribute_readv_double_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_attribute_readv_float"
 
#define IMPL   esio_attribute_readv_float_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_attribute_readv_int"
 
#define IMPL   esio_attribute_readv_int_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_line_write_double"
 
#define IMPL   esio_line_write_double_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_line_write_float"
 
#define IMPL   esio_line_write_float_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_line_write_int"
 
#define IMPL   esio_line_write_int_c
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_line_read_double"
 
#define IMPL   esio_line_read_double_c
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_line_read_float"
 
#define IMPL   esio_line_read_float_c
 
#define FINTENT   intent(out)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_line_read_int"
 
#define IMPL   esio_line_read_int_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_line_writev_double"
 
#define IMPL   esio_line_writev_double_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_line_writev_float"
 
#define IMPL   esio_line_writev_float_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_line_writev_int"
 
#define IMPL   esio_line_writev_int_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_line_readv_double"
 
#define IMPL   esio_line_readv_double_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_line_readv_float"
 
#define IMPL   esio_line_readv_float_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_line_readv_int"
 
#define IMPL   esio_line_readv_int_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_plane_write_double"
 
#define IMPL   esio_plane_write_double_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_plane_write_float"
 
#define IMPL   esio_plane_write_float_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_plane_write_int"
 
#define IMPL   esio_plane_write_int_c
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_plane_read_double"
 
#define IMPL   esio_plane_read_double_c
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_plane_read_float"
 
#define IMPL   esio_plane_read_float_c
 
#define FINTENT   intent(out)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_plane_read_int"
 
#define IMPL   esio_plane_read_int_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_plane_writev_double"
 
#define IMPL   esio_plane_writev_double_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_plane_writev_float"
 
#define IMPL   esio_plane_writev_float_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_plane_writev_int"
 
#define IMPL   esio_plane_writev_int_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_plane_readv_double"
 
#define IMPL   esio_plane_readv_double_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_plane_readv_float"
 
#define IMPL   esio_plane_readv_float_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_plane_readv_int"
 
#define IMPL   esio_plane_readv_int_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_field_write_double"
 
#define IMPL   esio_field_write_double_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_field_write_float"
 
#define IMPL   esio_field_write_float_c
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_field_write_int"
 
#define IMPL   esio_field_write_int_c
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_field_read_double"
 
#define IMPL   esio_field_read_double_c
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_field_read_float"
 
#define IMPL   esio_field_read_float_c
 
#define FINTENT   intent(out)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_field_read_int"
 
#define IMPL   esio_field_read_int_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_field_writev_double"
 
#define IMPL   esio_field_writev_double_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_field_writev_float"
 
#define IMPL   esio_field_writev_float_c
 
#define VECTORVALUED
 
#define HASCOMMENT
 
#define FINTENT   intent(in)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_field_writev_int"
 
#define IMPL   esio_field_writev_int_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_double)
 
#define CBINDNAME   "esio_field_readv_double"
 
#define IMPL   esio_field_readv_double_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   real(c_float)
 
#define CBINDNAME   "esio_field_readv_float"
 
#define IMPL   esio_field_readv_float_c
 
#define VECTORVALUED
 
#define FINTENT   intent(out)
 
#define CTYPE   integer(c_int)
 
#define CBINDNAME   "esio_field_readv_int"
 
#define IMPL   esio_field_readv_int_c
 

Macro Definition Documentation

#define CBINDNAME   "esio_attribute_write_double"
#define CBINDNAME   "esio_attribute_write_float"
#define CBINDNAME   "esio_attribute_write_int"
#define CBINDNAME   "esio_attribute_read_double"
#define CBINDNAME   "esio_attribute_read_float"
#define CBINDNAME   "esio_attribute_read_int"
#define CBINDNAME   "esio_attribute_writev_double"
#define CBINDNAME   "esio_attribute_writev_float"
#define CBINDNAME   "esio_attribute_writev_int"
#define CBINDNAME   "esio_attribute_readv_double"
#define CBINDNAME   "esio_attribute_readv_float"
#define CBINDNAME   "esio_attribute_readv_int"
#define CBINDNAME   "esio_line_write_double"
#define CBINDNAME   "esio_line_write_float"
#define CBINDNAME   "esio_line_write_int"
#define CBINDNAME   "esio_line_read_double"
#define CBINDNAME   "esio_line_read_float"
#define CBINDNAME   "esio_line_read_int"
#define CBINDNAME   "esio_line_writev_double"
#define CBINDNAME   "esio_line_writev_float"
#define CBINDNAME   "esio_line_writev_int"
#define CBINDNAME   "esio_line_readv_double"
#define CBINDNAME   "esio_line_readv_float"
#define CBINDNAME   "esio_line_readv_int"
#define CBINDNAME   "esio_plane_write_double"
#define CBINDNAME   "esio_plane_write_float"
#define CBINDNAME   "esio_plane_write_int"
#define CBINDNAME   "esio_plane_read_double"
#define CBINDNAME   "esio_plane_read_float"
#define CBINDNAME   "esio_plane_read_int"
#define CBINDNAME   "esio_plane_writev_double"
#define CBINDNAME   "esio_plane_writev_float"
#define CBINDNAME   "esio_plane_writev_int"
#define CBINDNAME   "esio_plane_readv_double"
#define CBINDNAME   "esio_plane_readv_float"
#define CBINDNAME   "esio_plane_readv_int"
#define CBINDNAME   "esio_field_write_double"
#define CBINDNAME   "esio_field_write_float"
#define CBINDNAME   "esio_field_write_int"
#define CBINDNAME   "esio_field_read_double"
#define CBINDNAME   "esio_field_read_float"
#define CBINDNAME   "esio_field_read_int"
#define CBINDNAME   "esio_field_writev_double"
#define CBINDNAME   "esio_field_writev_float"
#define CBINDNAME   "esio_field_writev_int"
#define CBINDNAME   "esio_field_readv_double"
#define CBINDNAME   "esio_field_readv_float"
#define CBINDNAME   "esio_field_readv_int"
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define CTYPE   real(c_double)
#define CTYPE   real(c_float)
#define CTYPE   integer(c_int)
#define enumerator   integer(c_int), parameter
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(in)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define FINTENT   intent(out)
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define HASCOMMENT
#define IMPL   esio_attribute_write_double_c
#define IMPL   esio_attribute_write_float_c
#define IMPL   esio_attribute_write_int_c
#define IMPL   esio_attribute_read_double_c
#define IMPL   esio_attribute_read_float_c
#define IMPL   esio_attribute_read_int_c
#define IMPL   esio_attribute_writev_double_c
#define IMPL   esio_attribute_writev_float_c
#define IMPL   esio_attribute_writev_int_c
#define IMPL   esio_attribute_readv_double_c
#define IMPL   esio_attribute_readv_float_c
#define IMPL   esio_attribute_readv_int_c
#define IMPL   esio_line_write_double_c
#define IMPL   esio_line_write_float_c
#define IMPL   esio_line_write_int_c
#define IMPL   esio_line_read_double_c
#define IMPL   esio_line_read_float_c
#define IMPL   esio_line_read_int_c
#define IMPL   esio_line_writev_double_c
#define IMPL   esio_line_writev_float_c
#define IMPL   esio_line_writev_int_c
#define IMPL   esio_line_readv_double_c
#define IMPL   esio_line_readv_float_c
#define IMPL   esio_line_readv_int_c
#define IMPL   esio_plane_write_double_c
#define IMPL   esio_plane_write_float_c
#define IMPL   esio_plane_write_int_c
#define IMPL   esio_plane_read_double_c
#define IMPL   esio_plane_read_float_c
#define IMPL   esio_plane_read_int_c
#define IMPL   esio_plane_writev_double_c
#define IMPL   esio_plane_writev_float_c
#define IMPL   esio_plane_writev_int_c
#define IMPL   esio_plane_readv_double_c
#define IMPL   esio_plane_readv_float_c
#define IMPL   esio_plane_readv_int_c
#define IMPL   esio_field_write_double_c
#define IMPL   esio_field_write_float_c
#define IMPL   esio_field_write_int_c
#define IMPL   esio_field_read_double_c
#define IMPL   esio_field_read_float_c
#define IMPL   esio_field_read_int_c
#define IMPL   esio_field_writev_double_c
#define IMPL   esio_field_writev_float_c
#define IMPL   esio_field_writev_int_c
#define IMPL   esio_field_readv_double_c
#define IMPL   esio_field_readv_float_c
#define IMPL   esio_field_readv_int_c
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED
#define VECTORVALUED

Generated on Thu Jan 16 2014 10:16:33 for esio by  doxygen 1.8.2