Fortran与MPI错误

时间:2015-06-23 11:54:13

标签: fortran mpi

我正在使用MPI处理Fortran代码并引入以下MPI命令

    call MPI_Gather(nlocal,1,MPI_INTEGER,counts,1,MPI_INTEGER,0&
         &,comm_cart,ierror)

在特定subroutine中出现以下错误:

This name does not have a type, and must have an explicit type.   [MPI_INTEGER]

据我所知,编译器无法识别此代码的MPI部分。但是,除了Fortran MPI数据类型nlocal, counts and comm_cart之外,所有其他相关变量(例如MPI_INTEGER)都被识别。有人可以抛光,我做错了吗?

注意:编译器是Intel编译器

1 个答案:

答案 0 :(得分:2)

您必须告诉编译器有关MPI的内容(主要是变量)。

现代的方式是介绍

use mpi

在每个范围内。

在过去,它也是使用

完成的
include "mpif.h"

但这有几个缺点。也就是说,因为它与FORTRAN 77兼容,所以它不会为任何MPI子例程引入显式接口,因此错误检查不如use mpi那么彻底。现代方法将帮助您更好地保持代码正确。

另一方面,如果使用use mpi,则必须使用用于编译程序的相同编译器(有时甚至使用相同版本)编译模块mpi