FMS  2024.03
Flexible Modeling System
mpp_data_mpi.inc
1 ! -*-f90-*-
2 
3 !***********************************************************************
4 !* GNU Lesser General Public License
5 !*
6 !* This file is part of the GFDL Flexible Modeling System (FMS).
7 !*
8 !* FMS is free software: you can redistribute it and/or modify it under
9 !* the terms of the GNU Lesser General Public License as published by
10 !* the Free Software Foundation, either version 3 of the License, or (at
11 !* your option) any later version.
12 !*
13 !* FMS is distributed in the hope that it will be useful, but WITHOUT
14 !* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
15 !* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
16 !* for more details.
17 !*
18 !* You should have received a copy of the GNU Lesser General Public
19 !* License along with FMS. If not, see <http://www.gnu.org/licenses/>.
20 !***********************************************************************
21 !> @file
22 !> @ingroup mpp_data_mod
23 !> @brief Holds dummy constants and stack data for @ref mpp_mod and @ref mpp_domains_mod.
24 !! Accessible through @ref mpp_data_mod
25 
26 !----------------------------------------------------------------!
27 ! The following data is used in mpp_mod and its components !
28 !----------------------------------------------------------------!
29 integer :: stat(MPI_STATUS_SIZE)
30 real(r8_kind), allocatable :: mpp_stack(:) !< stack used for general mpp operations
31 
32 !--- some dummy variables with dummy values that will never be used
33 integer, parameter :: ptr_stack = -999
34 integer, parameter :: status=-999, ptr_status = -999
35 integer, parameter :: remote_data_loc=-999, ptr_remote = -999
36 integer, parameter :: sync=-999, ptr_sync = -999
37 integer, parameter :: mpp_from_pe = -999, ptr_from = -999
38 
39 !-------------------------------------------------------------------!
40 ! The following data is used in mpp_domains_mod and its components !
41 !-------------------------------------------------------------------!
42 real(r8_kind), allocatable :: mpp_domains_stack(:) !< stack used to hold data for domain operations
43 real(r8_kind), allocatable :: mpp_domains_stack_nonblock(:) !< stack used for non-blocking domain operations
44 !--- some dummy variables with dummy values that will never be used
45 integer, parameter :: ptr_domains_stack = -999
46 integer, parameter :: ptr_domains_stack_nonblock = -999