gfortran compiles -------------------- SUBROUTINE OPT1 (IB) IMPLICIT REAL*8 (A-H,O-Z) COMMON /INTNEW/ VL,EPS,BEGIN,STEP END SUBROUTINE OPT0(E0,H0,P0,NUMB,X,Y) IMPLICIT double precision (A-H,O-Z) COMMON /INTNEW/ V,EPS,BEGIN,STEP,PP,DOM,PIMEAN,AA,A0,BB,B0,PI0,G,G1,G2 END ------------------ without any warning (as does ifort). However, you should either warn or give an error if two commons don't match. NAGWare compiler fails with an ERROR: ------------------ Error: test5.f90: Inconsistent definitions of COMMON block INTNEW in program-units OPT1 and OPT0 ------------------ g95 compiler (with only "-c" and not -Wall) compiles, but spits out the warning: ------------------ In file test5.f90:8 COMMON /INTNEW/ V,EPS,BEGIN,STEP,PP,DOM,PIMEAN,AA,A0,BB,B0,PI0,G,G1,G2 1 In file test5.f90:3 COMMON /INTNEW/ VL,EPS,BEGIN,STEP 2 Warning (121): COMMON block 'intnew' is 120 bytes at (1) and 32 bytes at (2) ------------------
Confirmed.
Works for me, even though the warning could be a bit more verbose. Should this really be a default warning? schluter@pcl247d:~/src/pr/27327> gfortran t.f90 -Wall -c t.f90: In function 'opt1': t.f90:1: warning: unused variable 'ib' In file t.f90:8 COMMON /INTNEW/ V,EPS,BEGIN,STEP,PP,DOM,PIMEAN,AA,A0,BB,B0,PI0,G,G1,G2 1 Warning: Named COMMON block 'intnew' at (1) shall be of the same size t.f90: In function 'opt0': t.f90:6: warning: unused variable 'numb' t.f90:6: warning: unused variable 'e0' t.f90:6: warning: unused variable 'h0' t.f90:6: warning: unused variable 'p0' t.f90:6: warning: unused variable 'x' t.f90:6: warning: unused variable 'y' schluter@pcl247d:~/src/pr/27327>
Actually we recomend before filing a bug to use -Wall -W so really this is not a bug.