! Module  : msg_m
! Purpose : Low-level interface for MSG
!
! Copyright 2021-2022 Rich Townsend & The MSG Team
!
! This file is part of MSG. MSG is free software: you can redistribute
! it and/or modify it under the terms of the GNU General Public
! License as published by the Free Software Foundation, version 3.
!
! MSG is distributed in the hope that it will be useful, but WITHOUT
! ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
! or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
! License for more details.
!
! You should have received a copy of the GNU General Public License
! along with this program.  If not, see <http://www.gnu.org/licenses/>.

#:include 'forum.inc'

module msg_m

   ! Uses

   use axis_m
   use file_m
   use limb_m
   use passband_m
   use photint_m
   use limb_photint_m
   use photgrid_m
   use photsource_m
   use hdf5_photsource_m
   use spec_photsource_m
   use mem_photsource_m
   use range_m
   use comp_range_m, only: comp_range_t
   use lin_range_m, only: lin_range_t
   use log_range_m, only: log_range_t
   use tab_range_m, only: tab_range_t
   use specgrid_m
   use specint_m
   use limb_specint_m
   use specsource_m
   use hdf5_specsource_m
   use stat_m
   use vgrid_m

   ! No implicit typing

   implicit none

   ! Access specifiers

   public

contains

   subroutine get_version(version)

      character(:), allocatable, intent(out) :: version

      ! Get the library version

      #:include 'version.inc'

      ! Finish

      return

   end subroutine get_version

end module msg_m
