FMS  2025.04
Flexible Modeling System
mpp_data_mpi.inc
1 ! -*-f90-*-
2 
3 !***********************************************************************
4 !* Apache License 2.0
5 !*
6 !* This file is part of the GFDL Flexible Modeling System (FMS).
7 !*
8 !* Licensed under the Apache License, Version 2.0 (the "License");
9 !* you may not use this file except in compliance with the License.
10 !* You may obtain a copy of the License at
11 !*
12 !* http://www.apache.org/licenses/LICENSE-2.0
13 !*
14 !* FMS is distributed in the hope that it will be useful, but WITHOUT
15 !* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied;
16 !* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
17 !* PARTICULAR PURPOSE. See the License for the specific language
18 !* governing permissions and limitations under the License.
19 !***********************************************************************
20 !> @file
21 !> @ingroup mpp_data_mod
22 !> @brief Holds dummy constants and stack data for @ref mpp_mod and @ref mpp_domains_mod.
23 !! Accessible through @ref mpp_data_mod
24 
25 !----------------------------------------------------------------!
26 ! The following data is used in mpp_mod and its components !
27 !----------------------------------------------------------------!
28 integer :: stat(MPI_STATUS_SIZE)
29 real(r8_kind), allocatable :: mpp_stack(:) !< stack used for general mpp operations
30 
31 !--- some dummy variables with dummy values that will never be used
32 integer, parameter :: ptr_stack = -999
33 integer, parameter :: status=-999, ptr_status = -999
34 integer, parameter :: remote_data_loc=-999, ptr_remote = -999
35 integer, parameter :: sync=-999, ptr_sync = -999
36 integer, parameter :: mpp_from_pe = -999, ptr_from = -999
37 
38 !-------------------------------------------------------------------!
39 ! The following data is used in mpp_domains_mod and its components !
40 !-------------------------------------------------------------------!
41 real(r8_kind), allocatable :: mpp_domains_stack(:) !< stack used to hold data for domain operations
42 real(r8_kind), allocatable :: mpp_domains_stack_nonblock(:) !< stack used for non-blocking domain operations
43 !--- some dummy variables with dummy values that will never be used
44 integer, parameter :: ptr_domains_stack = -999
45 integer, parameter :: ptr_domains_stack_nonblock = -999