wrf-model / WRF

The official repository for the Weather Research and Forecasting (WRF) model
Other
1.27k stars 697 forks source link

Build errors with the latest gfortran #1106

Open iii-i opened 4 years ago

iii-i commented 4 years ago

Hi!

I'm trying to build WRF with gfortran 10.0.1 20200226 (git commit ce25177f505). It looks as if it does not allow passing COMPLEX arrays as REAL ones anymore, since I'm getting a lot of error messages like the following:

zmfm1b.f90:70:38:

   68 |       call zmf2kb ( lot, ido, l1, na, c, jump, inc, ch, 1, lot, wa(iw) )
      |                                      2
   69 |     else if ( nbr == 2 ) then
   70 |       call zmf2kb ( lot, ido, l1, na, ch, 1, lot, c, jump, inc, wa(iw) )
      |                                      1
Error: Type mismatch between actual argument at (1) and actual argument at (2) (REAL(8)/COMPLEX(8)).
davegill commented 4 years ago

I will check on the status of FFTPACK, which is from where we took this code. If that has not been updated, we may be stuck with GNU 9 for a while.

mgduda commented 4 years ago

The GCC 10 documentation mentions the following:

Mismatches between actual and dummy argument lists in a single file are now rejected with an error. Use the new option -fallow-argument-mismatch to turn these errors into warnings; this option is implied with -std=legacy. -Wargument-mismatch has been removed.

Does adding the -fallow-argument-mismatch flag allow WRF to compile?

iii-i commented 4 years ago

@mgduda that helped, thanks!

I will leave the issue open for you to decide whether you'd like to improve gfortran 10 compatibility, or whether -fallow-argument-mismatch/-std=legacy is good enough.

syalavarthi commented 4 years ago

Duplicate of #1250