in the scope of a code modernization campaign, I switched from MPI-2 to MPI-3 (use mpi_f08). Thanks to the comprehensive information in the "Message-Passing Interface Standard - Version 3.1", the necessary adaptions went smoothly. Soon, I could compile a functional version of the code with the Intel 2019 Fortran compiler.
(Intel 2019: intel/impi2019u6/impi/2019.6.154/intel64/bin/mpiifort, Intel(R) MPI Library for Linux* OS, Version 2019 Update 6 Build 20191024 (id: 082ae5608))
However, still unresolved issues surfaced when I compiled with the Intel 2018 Fortran compiler.
(Intel 2018: intel/studio2018_p4/impi/2018.4.274/bin64/mpiifort, Intel(R) MPI Library for Linux* OS, Version 2018 Update 4 Build 20180823 (id: 18555))
The problems concentrate around the function MPI_Op_create(). A minimal example with the same properties as the code section in question is attached (file main_test.f90). I compiled with
mpiifort main_test.f90 -o main.exe
Despite of many attempts, I could not even find the slightest hint to approach a working solution. The recipes as the are described in the "Message-Passing Interface Standard - Version 3.1" fail and also my research through entries in different fora did not yield results.
Since it is crucial for me that the code is at least portable across different compiler versions, it would be very kind if you could give me a hint on how to resolve the issue. Of course, I am happy to provide further information of required. Thank you for your help in advance.