On Wed, 8 Mar 2023, Thomas Koenig wrote: > On 08.03.23 15:55, Paul Richard Thomas via Fortran wrote: > > As noted below, rnflow.f90 hangs with the unpatched mainline at -O3 but > > runs successfully at -O2. > > I can confirm that. > > > I presume that this is a serious regression since it involves optimization? > > Which component should I post it against? > > Probably against tree-optimization. If later analysis determines that > it is something else, people will reassign it. > > This one probably calls for bisection.
I have the following local change to rnflow with that I can't reproduce: --- rnflow.f90.orig 2016-06-01 14:50:16.922376347 +0200 +++ rnflow.f90 2016-06-01 14:56:54.739045162 +0200 @@ -884,6 +884,7 @@ ! generation maison d'une valeur pseudo-aleatoire uniforme sur (0,1) ! integer, intent (inout) :: jsee ! germe courant + integer(kind=8) :: jsee_long integer, parameter :: jmul = 843314861 ! multiplicateur integer, parameter :: jadd = 453816693 ! constante additive integer, parameter :: j230 = 1073741824 ! 2 puissance 30 @@ -899,7 +900,9 @@ !CRAY - The following multiply must be done with 64 bits (not 46 bits) ! The algoritm depends on the overflow characteristics of ! a 32 or 64 bit multiply. - jsee = jsee * jmul + jadd + jsee_long = jsee; + jsee_long = jsee_long * jmul + jadd + jsee = jsee_long; !CRAY - Change to avoid 32 bit integer dependency ! ! The original line is needlessly dependent on the the existing comment already explains the issue. I suppose -fdefault-integer-8 would also work around the issue? ISTR there is an old (closed invalid) bugreport about this as well. Richard.