1! 2! Distributed under the OSI-approved Apache License, Version 2.0. See 3! accompanying file Copyright.txt for details. 4! 5! adios2_mod.f90 : ADIOS2 Fortran bindings central module 6! 7! Created on: Mar 13, 2017 8! Author: William F Godoy godoywf@ornl.gov 9! 10 11module adios2_parameters_mod 12 implicit none 13 14 ! Debug mode 15 logical, parameter :: adios2_debug_mode_on = .true. 16 logical, parameter :: adios2_debug_mode_off = .false. 17 18 ! Types 19 integer, parameter :: adios2_type_unknown = -1 20 21 integer, parameter :: adios2_type_character = 0 22 integer, parameter :: adios2_type_string = 0 23 24 integer, parameter :: adios2_type_real4 = 1 25 integer, parameter :: adios2_type_real = 1 26 27 integer, parameter :: adios2_type_real8 = 2 28 integer, parameter :: adios2_type_dp = 2 29 integer, parameter :: adios2_type_double_precision = 2 30 31 integer, parameter :: adios2_type_complex4 = 3 32 integer, parameter :: adios2_type_complex = 3 33 34 integer, parameter :: adios2_type_complex8 = 4 35 integer, parameter :: adios2_type_complex_dp = 4 36 37 integer, parameter :: adios2_type_integer1 = 5 38 integer, parameter :: adios2_type_integer2 = 6 39 integer, parameter :: adios2_type_integer4 = 7 40 integer, parameter :: adios2_type_integer8 = 8 41 42 ! is_constant_dims 43 logical, parameter :: adios2_constant_dims = .true. 44 logical, parameter :: adios2_variable_dims = .false. 45 46 ! Variable Found or not found, ierr value 47 integer, parameter :: adios2_not_found = -1 48 integer, parameter :: adios2_found = 0 49 50 ! error 51 integer, parameter :: adios2_error_none = 0 52 integer, parameter :: adios2_error_invalid_argument = 1 53 integer, parameter :: adios2_error_system_error = 2 54 integer, parameter :: adios2_error_runtime_error = 3 55 integer, parameter :: adios2_error_exception = 4 56 57 ! Mode 58 integer, parameter :: adios2_mode_undefined = 0 59 integer, parameter :: adios2_mode_write = 1 60 integer, parameter :: adios2_mode_read = 2 61 integer, parameter :: adios2_mode_append = 3 62 integer, parameter :: adios2_mode_deferred = 4 63 integer, parameter :: adios2_mode_sync = 5 64 65 ! Step Mode 66 integer, parameter :: adios2_step_mode_append = 0 67 integer, parameter :: adios2_step_mode_update = 1 68 integer, parameter :: adios2_step_mode_read = 2 69 70 ! Step Status 71 integer, parameter :: adios2_step_status_other_error = -1 72 integer, parameter :: adios2_step_status_ok = 0 73 integer, parameter :: adios2_step_status_not_ready = 1 74 integer, parameter :: adios2_step_status_end_of_stream = 2 75 76 !> Fixed size for string array, used in variables and attributes, 77 !! must be less or equal than C equivalent in adios2_c_types.h 78 integer, parameter :: adios2_string_array_element_max_size = 4096 79 80 integer(kind=8), parameter, dimension(1) :: adios2_null_dims = (/-1/) 81 integer(kind=8), parameter :: adios2_local_value_dim = -2 82 83 logical, parameter :: adios2_advance_yes = .true. 84 logical, parameter :: adios2_advance_no = .false. 85 86 ! Low level API handlers 87 type adios2_adios 88 integer(kind=8):: f2c = 0_8 89 logical :: valid = .false. 90 end type 91 92 type adios2_io 93 integer(kind=8):: f2c = 0_8 94 logical :: valid = .false. 95 character(len=15):: engine_type = 'BPFile' 96 end type 97 98 type adios2_variable 99 integer(kind=8):: f2c = 0_8 100 logical :: valid = .false. 101 character(len=4096):: name = '' 102 integer :: type = -1 103 integer :: ndims = -1 104 end type 105 106 type adios2_attribute 107 integer(kind=8):: f2c = 0_8 108 logical :: valid = .false. 109 logical :: is_value = .false. 110 character(len=4096):: name = '' 111 integer :: type = -1 112 integer :: length = -1 113 end type 114 115 type adios2_engine 116 integer(kind=8):: f2c = 0_8 117 logical :: valid = .false. 118 character(len=64):: name = '' 119 character(len=15):: type = '' 120 integer :: mode = adios2_mode_undefined 121 end type 122 123 type adios2_operator 124 integer(kind=8):: f2c = 0_8 125 logical :: valid = .false. 126 character(len=64):: name = '' 127 character(len=64):: type = '' 128 end type 129 130end module 131