Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compile the parallel version using gfortran and gcc (11.2.0) and openmpi-4.1.1 #17

Open
houzf opened this issue Dec 11, 2021 · 2 comments

Comments

@houzf
Copy link

houzf commented Dec 11, 2021

The error messages are listed below:

mpif90 -c -DPARALLEL -O2 -pedantic -fexternal-blas parallel.F90 -o parallel.o
parallel.F90:1603:23:

1603 | call MPI_allreduce(buff, val, 1, MPI_DOUBLE_PRECISION, MPI_SUM, &
| 1
......
1623 | call MPI_allreduce(buff, val, n, MPI_DOUBLE_PRECISION, MPI_SUM, &
| 2
Error: Rank mismatch between actual argument at (1) and actual argument at (2) (rank-1 and scalar)
parallel.F90:1584:23:

1584 | call MPI_allreduce(buff, val, n, MPI_INTEGER, MPI_SUM, &
| 1
......
1623 | call MPI_allreduce(buff, val, n, MPI_DOUBLE_PRECISION, MPI_SUM, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(8)).
parallel.F90:1564:23:

1564 | call MPI_allreduce(buff, val, 1, MPI_INTEGER, MPI_SUM, &
| 1
......
1623 | call MPI_allreduce(buff, val, n, MPI_DOUBLE_PRECISION, MPI_SUM, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/REAL(8)).
parallel.F90:1469:21:

1469 | call MPI_Recv(val, 1, MPI_LOGICAL, src, tag, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/CHARACTER(
)).
parallel.F90:1472:21:

1472 | call MPI_Recv(val, 1, MPI_LOGICAL, MPI_ANY_SOURCE, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/CHARACTER(
)).
parallel.F90:1442:21:

1442 | call MPI_Recv(val, n, MPI_DOUBLE_PRECISION, src, tag, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(
)).
parallel.F90:1445:21:

1445 | call MPI_Recv(val, n, MPI_DOUBLE_PRECISION, MPI_ANY_SOURCE, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(
)).
parallel.F90:1414:21:

1414 | call MPI_Recv(val, 1, MPI_DOUBLE_PRECISION, src, tag, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(
)).
parallel.F90:1417:21:

1417 | call MPI_Recv(val, 1, MPI_DOUBLE_PRECISION, MPI_ANY_SOURCE, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(
)).
parallel.F90:1387:21:

1387 | call MPI_Recv(val, n, MPI_INTEGER, src, tag, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(
)).
parallel.F90:1390:21:

1390 | call MPI_Recv(val, n, MPI_INTEGER, MPI_ANY_SOURCE, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(
)).
parallel.F90:1359:21:

1359 | call MPI_Recv(val, 1, MPI_INTEGER, src, tag, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(
)).
parallel.F90:1362:21:

1362 | call MPI_Recv(val, 1, MPI_INTEGER, MPI_ANY_SOURCE, &
| 1
......
1531 | call MPI_Recv(val, nm, MPI_CHARACTER, src, tag, &
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(
)).
parallel.F90:1278:18:

1278 | call MPI_Send(val, 1, MPI_LOGICAL, dest, tag, MPI_COMM_WORLD, ierr)
| 1
......
1328 | call MPI_Send(val, mn, MPI_CHARACTER, dest, tag, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/CHARACTER(
)).
parallel.F90:1257:18:

1257 | call MPI_Send(val, n, MPI_DOUBLE_PRECISION, dest, tag, MPI_COMM_WORLD, ierr)
| 1
......
1328 | call MPI_Send(val, mn, MPI_CHARACTER, dest, tag, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(
)).
parallel.F90:1235:18:

1235 | call MPI_Send(val, 1, MPI_DOUBLE_PRECISION, dest, tag, MPI_COMM_WORLD, ierr)
| 1
......
1328 | call MPI_Send(val, mn, MPI_CHARACTER, dest, tag, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(
)).
parallel.F90:1214:18:

1214 | call MPI_Send(val, n, MPI_INTEGER, dest, tag, MPI_COMM_WORLD, ierr)
| 1
......
1328 | call MPI_Send(val, mn, MPI_CHARACTER, dest, tag, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(
)).
parallel.F90:1192:18:

1192 | call MPI_Send(val, 1, MPI_INTEGER, dest, tag, MPI_COMM_WORLD, ierr)
| 1
......
1328 | call MPI_Send(val, mn, MPI_CHARACTER, dest, tag, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(
)).
parallel.F90:1103:22:

1103 | call MPI_Bcast(val, n, MPI_LOGICAL, root, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/CHARACTER(*)).
parallel.F90:1105:22:

1105 | call MPI_Bcast(val, n, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/CHARACTER(*)).
parallel.F90:1079:22:

1079 | call MPI_Bcast(val, 1, MPI_LOGICAL, root, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/CHARACTER(*)).
parallel.F90:1081:22:

1081 | call MPI_Bcast(val, 1, MPI_LOGICAL, 0, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (LOGICAL(4)/CHARACTER(*)).
parallel.F90:1056:22:

1056 | call MPI_Bcast(val, n, MPI_DOUBLE_PRECISION, root, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(*)).
parallel.F90:1058:22:

1058 | call MPI_Bcast(val, n, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(*)).
parallel.F90:1032:22:

1032 | call MPI_Bcast(val, 1, MPI_DOUBLE_PRECISION, root, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(*)).
parallel.F90:1034:22:

1034 | call MPI_Bcast(val, 1, MPI_DOUBLE_PRECISION, 0, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/CHARACTER(*)).
parallel.F90:1009:22:

1009 | call MPI_Bcast(val, n, MPI_INTEGER, root, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(*)).
parallel.F90:1011:22:

1011 | call MPI_Bcast(val, n, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(*)).
parallel.F90:985:22:

985 | call MPI_Bcast(val, 1, MPI_INTEGER, root, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(*)).
parallel.F90:987:22:

987 | call MPI_Bcast(val, 1, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr)
| 1
......
1159 | call MPI_Bcast(val, m, MPI_CHARACTER, root, MPI_COMM_WORLD, ierr)
| 2
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/CHARACTER(*)).
make: *** [parallel.o] Error 1

@nartrith
Copy link
Contributor

This is not enough information to determine what has gone wrong. Which commands did you use for compilation? Which compiler? What is your platform/OS/architecture? Which MPI library is used?

@houzf
Copy link
Author

houzf commented Dec 26, 2021

Thanks for your reply.

The above error messages were met for the use of gcc &gfortran version 11.2.0 and openmpi-4.1.1 on the Linux system.

According to the similar issues reported in "alpinelinux/aports@7330414", I have fixed this problem by adjusting the setup of "FCFLAGS" in
makefiles/Makefile.gfortran_openblas_mpi as below:
FCFLAGS = -DPARALLEL -O3 -fexternal-blas -fblas-matmul-limit=30 -fallow-argument-mismatch $(DEBUG)

That is to say, remove "-pedantic" and add "-fallow-argument-mismatch".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants