Cmake build action (#865)
[FMS.git] / mpp / mpp_data.F90
blob6b9b91931e3719d8d8f7028694d09afe27665b66
1 !***********************************************************************
2 !*                   GNU Lesser General Public License
3 !*
4 !* This file is part of the GFDL Flexible Modeling System (FMS).
5 !*
6 !* FMS is free software: you can redistribute it and/or modify it under
7 !* the terms of the GNU Lesser General Public License as published by
8 !* the Free Software Foundation, either version 3 of the License, or (at
9 !* your option) any later version.
11 !* FMS is distributed in the hope that it will be useful, but WITHOUT
12 !* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 !* FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14 !* for more details.
16 !* You should have received a copy of the GNU Lesser General Public
17 !* License along with FMS.  If not, see <http://www.gnu.org/licenses/>.
18 !***********************************************************************
19 !> @defgroup mpp_data_mod mpp_data_mod
20 !> @ingroup mpp
21 !> @brief Module to hold pointer and stack data for use in @ref mpp modules.
23 !> Makes stack and pointer data publicly available from @ref mpp_data_mpi.inc or @ref
24 !! mpp_data_nocomm.inc for use in @ref mpp modules. This module is mainly
25 !! for internal use within @ref mpp_mod and @ref mpp_domains_mod .
27 !> @file
28 !> @brief File for @ref mpp_data_mod
30 !> @addtogroup mpp_data_mod
31 !> @{
32 module mpp_data_mod
34 #if defined(use_libMPI)
35   use mpi
36 #endif
38   use mpp_parameter_mod, only : MAXPES
39   use platform_mod
41   implicit none
42   private
44 ! Include variable "version" to be written to log file.
45 #include<file_version.h>
46   public version
48   !> public data used by mpp_mod
49   public :: stat, mpp_stack, ptr_stack, status, ptr_status, sync, ptr_sync
50   public :: mpp_from_pe, ptr_from, remote_data_loc, ptr_remote
52   !--- All othere modules should import these parameters from mpp_domains_mod.
53   !> public data which is used by mpp_domains_mod.
54   public :: mpp_domains_stack, ptr_domains_stack
55   public :: mpp_domains_stack_nonblock, ptr_domains_stack_nonblock
57   !-------------------------------------------------------------------------------!
58   ! The following data included in the .inc file are diffrent for sma or mpi case !
59   !-------------------------------------------------------------------------------!
61 #ifdef use_libMPI
62 #include <mpp_data_mpi.inc>
63 #else
64 #include <mpp_data_nocomm.inc>
65 #endif
67 end module mpp_data_mod
68 !> @}
69 ! close documentation grouping