http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55022
Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #11 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2013-02-07 14:57:40 UTC --- I have reduced botwall.f90 to !*==BOTWALL.spg processed by SPAG 6.55Dc at 09:26 on 23 Sep 2005 ! SUBROUTINE BOTWALL(Spx,Epx,Apy,Mxpx,U1,U2,U3,U4,Iv) IMPLICIT REAL*8(A-H,O-Z) PARAMETER (NX=150,NY=150) DIMENSION U(NX,NY) , V(NX,NY) , RHO(NX,NY) , T(NX,NY) , E(NX,NY) DIMENSION AS1(NX) , AS2(NX) , AS3(NY) , AS4(NY) , NX1(NX) , & & NY1(NX) DIMENSION NX2(NX) , NY2(NX) , SIG(NX) , P(NX,NY) DIMENSION U1(NX,NY) , U2(NX,NY) , U3(NX,NY) , U4(NX,NY) INTEGER Spx , Epx , Apy REAL*8 NX1 , NX2 , NY1 , NY2 , MINlet(NY) COMMON /BNDRY / U , V , P , RHO , T , E , AS1 , AS2 , AS3 , AS4 , & & NX1 , NY1 , NX2 , NY2 , SIG , GMA , S0 , T0 , P0 ,& & PE , HOO , RR , MINlet ! TWX_0 = 272.77 E_0 = RR*TWX_0/(GMA-1.) R_0 = 1.0/(TWX_0*RR) A_0 = DSQRT(GMA*TWX_0*RR) DO i = Spx , Epx ! ! BOTTOM WALL CONDITIONS FOR SUBSONIC FLOW ! vn1 = U(i,Apy)*NX1(i) + V(i,Apy)*NY1(i) P(i,Apy) = P(i,Apy)/DEXP(GMA*vn1/AS1(i)) U(i,Apy) = 0.0 V(i,Apy) = 0.0 T(i,Apy) = TWX_0 RHO(i,Apy) = P(i,Apy)*R_0 AS1(i) = A_0 E(i,Apy) = E_0 U1(i,Apy) = RHO(i,Apy) U2(i,Apy) = 0.0 U3(i,Apy) = 0.0 U4(i,Apy) = RHO(i,Apy)*E_0 ENDDO ! print *, U1(Spx:Epx,Apy) ! print *, U2(Spx:Epx,Apy) ! print *, U3(Spx:Epx,Apy) ! print *, U4(Spx:Epx,Apy) print *, U1(Spx:Spx+4,Apy) print *, U2(Spx:Spx+4,Apy) print *, U3(Spx:Spx+4,Apy) print *, U4(Spx:Spx+4,Apy) stop CONTINUE END With the following compilation (gfc: gcc 4.8 r195848, gfortran: 4.7.2) gfc -c -O2 -fgraphite-identity air_main.f90 gfortran -c -O2 -fgraphite-identity topwall.f90 gfortran -c -O2 -fgraphite-identity botwall_db.f90 gfc air_main.o botwall_db.o topwall.o I get 1.2901579736800930 1.2901579736800932 1.2901579736800932 1.2901579736800932 1.2901579736800932 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 0.0000000000000000 252499.99999999997 252500.00000000003 252500.00000000003 252500.00000000003 252500.00000000003 If I use gfc -c -O2 -fgraphite-identity botwall_db.f90 gfc air_main.o botwall_db.o topwall.o I get 1.2901579217165384 1.2000000476837158 1.2000000476837158 1.2000000476837158 1.2000000476837158 0.0000000000000000 6.5847860013093756E-016 -2.6339144005237502E-015 0.0000000000000000 7.7354314600658297E-015 0.0000000000000000 2.3705229604713751E-014 2.3705229604713751E-014 2.3705229604713751E-014 2.6300466964223820E-014 252500.00000000000 252500.00000000009 252500.00000000009 252500.00000000009 252500.00000000009 (In reply to comment #9) > I'm sorry, but the reporter is going to have to reduce this significantly > before we can debug this. This is a huge mess of spaghetti code with tons of > global and common variables scattered throughout, as well as state being > passed > around in files. > > Dominique, please reduce this to the smallest amount of reproducible code, so > we can attack this. Avoid reading and writing to files (as I see, these have > only a minimal amount of data anyhow), and global variables if at all > possible. Well, I am only the reporter. The code is not mine and this makes the task to reduce it while keeping the wrong code quite difficult (and cumbersome). > Please only keep the code that is relevant to reproduce the problem. I'll try to provide a self contained test, but not before the week-end.