FMS  2026.01.01-dev
Flexible Modeling System
gfdl_nompi_f08.F90
1 !***********************************************************************
2 !* Apache License 2.0
3 !*
4 !* This file is part of the GFDL Flexible Modeling System (FMS).
5 !*
6 !* Licensed under the Apache License, Version 2.0 (the "License");
7 !* you may not use this file except in compliance with the License.
8 !* You may obtain a copy of the License at
9 !*
10 !* http://www.apache.org/licenses/LICENSE-2.0
11 !*
12 !* FMS is distributed in the hope that it will be useful, but WITHOUT
13 !* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied;
14 !* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
15 !* PARTICULAR PURPOSE. See the License for the specific language
16 !* governing permissions and limitations under the License.
17 !***********************************************************************
18 
19 ! Ersatz mpi_f08 module which provides several type names and null values that are needed in the non-MPI build.
20 
21 module gfdl_nompi_f08
22 #ifndef use_libMPI
23  implicit none
24 
25  type :: mpi_comm
26  integer :: mpi_val = -1
27  end type mpi_comm
28 
29  type :: mpi_info
30  integer :: mpi_val = -1
31  end type mpi_info
32 
33  type :: mpi_group
34  end type mpi_group
35 
36  type :: mpi_request
37  end type mpi_request
38 
39  type :: mpi_datatype
40  end type mpi_datatype
41 
42  type(mpi_comm), parameter :: MPI_COMM_NULL = mpi_comm()
43  type(mpi_info), parameter :: MPI_INFO_NULL = mpi_info()
44  type(mpi_group), parameter :: MPI_GROUP_NULL = mpi_group()
45  type(mpi_request), parameter :: MPI_REQUEST_NULL = mpi_request()
46  type(mpi_datatype), parameter :: MPI_DATATYPE_NULL = mpi_datatype()
47 
48  type(mpi_datatype), parameter :: MPI_REAL4 = mpi_datatype()
49  type(mpi_datatype), parameter :: MPI_REAL8 = mpi_datatype()
50 #endif
51 end module gfdl_nompi_f08