From 6bf1f354258f2864b54aac53f64aee623c5bb1b9 Mon Sep 17 00:00:00 2001
From: "Godoy, William F" <godoywf@ornl.gov>
Date: Mon, 14 Aug 2017 07:10:34 -0400
Subject: [PATCH] Initial module and parameters

---
 bindings/fortran/adios2_mod.f90        | 54 ++++++++++++++++++++++++++
 bindings/fortran/adios2_parameters.f90 | 25 ++++++++++++
 2 files changed, 79 insertions(+)
 create mode 100644 bindings/fortran/adios2_mod.f90
 create mode 100644 bindings/fortran/adios2_parameters.f90

diff --git a/bindings/fortran/adios2_mod.f90 b/bindings/fortran/adios2_mod.f90
new file mode 100644
index 000000000..b4e7d502e
--- /dev/null
+++ b/bindings/fortran/adios2_mod.f90
@@ -0,0 +1,54 @@
+module adios2
+
+    #include "adios2_parameters.f90"
+
+    ! Overload adios2_init functions
+    interface adios2_init
+        #ifdef ADIOS2_USE_MPI_Fortran
+        module procedure adios2_init_mpi
+        module procedure adios2_init_config_mpi
+        #else
+        module procedure adios2_init_nompi
+        module procedure adios2_init_config_nompi
+        #endif
+    end interface
+
+        #ifdef ADIOS2_USE_MPI_Fortran
+    subroutine adios2_init_mpi(adios, comm, debug_mode, ierr)
+        implicit none
+        integer, intent(out) :: adios
+        integer, intent(in) :: comm
+        logical, intent(in), optional :: debug_mode
+        integer, intent(out), optional :: ierr
+    end
+
+    subroutine adios2_init_config_mpi(adios, config_file, comm, debug_mode &
+        & ierr)
+        implicit none
+        integer, intent(out) :: adios
+        character(*), intent(in) :: config_file
+        integer, intent(in) :: comm
+        logical, intent(in), optional :: debug_mode
+        integer, intent(out), optional :: ierr
+    end
+
+        #else
+    subroutine adios2_init_config_nompi(adios, config_file, debug_mode, &
+        & ierr)
+        implicit none
+        integer, intent(out) :: adios
+        character(*), intent(in) :: config_file
+        logical, intent(in), optional :: debug_mode
+        integer, intent(out), optional :: ierr
+    end
+
+    subroutine adios2_init_nompi(adios, debug_mode, ierr)
+        implicit none
+        integer, intent(out) :: adios
+        logical, intent(in), optional :: debug_mode
+        integer, intent(out), optional :: ierr
+    end
+
+
+end module
+
diff --git a/bindings/fortran/adios2_parameters.f90 b/bindings/fortran/adios2_parameters.f90
new file mode 100644
index 000000000..3941c0fcc
--- /dev/null
+++ b/bindings/fortran/adios2_parameters.f90
@@ -0,0 +1,25 @@
+
+! Debug mode
+integer, parameter :: adios2_debug_mode_on = 0
+integer, parameter :: adios2_debug_mode_off = 1
+
+! Type
+integer, parameter :: adios2_type_character = 0
+integer, parameter :: adios2_type_integer = 1
+integer, parameter :: adios2_type_real = 2
+integer, parameter :: adios2_type_real8 = 3
+integer, parameter :: adios2_type_double_precision = 3
+integer, parameter :: adios2_type_complex = 4
+integer, parameter :: adios2_type_complex8 = 5
+
+integer, parameter :: adios2_type_integer1 = 6
+integer, parameter :: adios2_type_integer2 = 7
+integer, parameter :: adios2_type_integer4 = 8
+integer, parameter :: adios2_type_integer8 = 9
+
+! Open Mode
+integer, parameter :: adios2_open_mode_undefined = 0
+integer, parameter :: adios2_open_mode_write = 1
+integer, parameter :: adios2_open_mode_read = 2
+integer, parameter :: adios2_open_mode_append = 3
+integer, parameter :: adios2_open_mode_read_write = 4
-- 
GitLab