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

bug in Exodus_for with gfortran 10.2 #187

Closed
ecoon opened this issue Aug 13, 2020 · 3 comments
Closed

bug in Exodus_for with gfortran 10.2 #187

ecoon opened this issue Aug 13, 2020 · 3 comments

Comments

@ecoon
Copy link

ecoon commented Aug 13, 2020

I was building SEACAS on a new Catalina OSX machine, and ran into the following issue when trying to build Exodus_for.

/Users/uec/code/ats/amanzi-tpls/build-ecoon-memory_management/relwithdebinfo/openmpi-4.0.4_1-clang-default/seacas/seacas-173a1e6-source/packages/seacas/libraries/exodus_for/src/addrwrap.F:1267:36:

 1140 |         CALL EXGSP4 (IDEXO4, IDESS, NSESS, NDESS, IERR4)
      |                                    2
......
 1267 |         CALL EXGSP4 (IDEXO4, IDESS, NSESS4, NDESS4, IERR4)
      |                                    1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/INTEGER(8)).
/Users/uec/code/ats/amanzi-tpls/build-ecoon-memory_management/relwithdebinfo/openmpi-4.0.4_1-clang-default/seacas/seacas-173a1e6-source/packages/seacas/libraries/exodus_for/src/addrwrap.F:3328:28:

  309 |         CALL EXGCOR4 (IDEXO4, XN, YN, ZN, IERR4)
      |                              2
......
 3328 |       call exgcor4 (idexo4, start_node_num, num_nodes, x_coor,
      |                            1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(8)/REAL(8)).

There are a few others like this, so you'll see the full error log (seacas-build-error.log) attached below. It wasn't clear to me whether this was a generated file or not, but looking at the calls (to exgcor4 especially) it is clear that one uses real and one uses int. I believe that gfortran 10 has gotten more strict about standards -- this might compile with gfortran -std=legacy (I've had to deal with this in mpich already) so I'm willing to try that if it would be useful.

Note there is no urgency on this -- we don't actually use Exodus_for so I just turned it off -- but figured I would let you know. Let me know if I can help testing a fix or anything.

Compilers are:

gfortran 10.2.0 (Homebrew's default gcc)
clang-1103.0.32.62 (system default)
openmpi 4.0.4_1 (Homebrew's default openmpi)

Included logs of configure and build for completeness:

seacas-configure-out.log
seacas-configure-err.log
seacas-build-out.log
seacas-build-err.log

@ecoon
Copy link
Author

ecoon commented Aug 13, 2020

For what it is worth, it looks like this should fix it (adding -fallow-argument-mismatch to FFLAGS and FCFLAGS).

Unidata/netcdf-fortran#212

@gsjaardema
Copy link
Member

It looks like you are using an older version of this file. Many gfortran-10 errors/warnings were fixed a few months ago when that version was released.

Is your source code from a current clone of the seacas repository?

@ecoon
Copy link
Author

ecoon commented Aug 13, 2020

Oh, good, my mistake. We are using a slightly older version. Will update, thanks!

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