[Bug fortran/93827] New: fails to initialize logical variable
zmth at yahoo dot com
gcc-bugzilla@gcc.gnu.org
Wed Feb 19 16:07:00 GMT 2020
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93827
Bug ID: 93827
Summary: fails to initialize logical variable
Product: gcc
Version: 4.8.2
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: fortran
Assignee: unassigned at gcc dot gnu.org
Reporter: zmth at yahoo dot com
Target Milestone: ---
in certain callings of the subroutine the determinant was being returned with
the wrong sign because the logical variable was not being initialized with
the official line
logical*1:: fl=.false.
nor did
logical*1:: fl /.false./
but instead had to specifically do
fl=.false.
which should not have been necessary
NOT it committed the error sometimes whether this was in a module and
called or whether the subroutine was in the same program as the
calling routine in main,not included below because it did same
error on various calling routines but not all,
eg in a file he2.f03 for example
gfortran -O3 -ffast-math he2.f03
gfortran -g -fbacktrace -fcheck=all -Wall -O3 -ffast-math he2.f03
using either of these command lines got the error sometimes
and NO warnings and NO errors reported from gfortran neither at
compile nor runtime - NO errors reported from gfortran
------------------------------------
subroutine det(n,aa,dt)
real*8 aa(n,n),dt,rm,tmp(n)
integer m(2)
logical*1:: fl=.false. ! did not work nor did /.false./
! fl=.false. !but had to do this
dt=1
do i=1,n-1
m=maxloc(abs(aa(i:,i:)))
rm=aa(i+m(1)-1,i+m(2)-1)
dt=dt*rm
if(m(1).ne.1)then
fl=.not.fl
tmp(i:)=aa(i,i:)
aa(i,i:)=aa(i+m(1)-1,i:)
aa(i+m(1)-1,i:)=tmp(i:)
endif
if(m(2).ne.1)then
fl=.not.fl
tmp(i:)=aa(i:,i)
aa(i:,i)=aa(i:,i+m(2)-1)
aa(i:,i+m(2)-1)=tmp(i:)
endif
do j=i+1,n
aa(j,i+1:)=aa(j,i+1:)-aa(j,i)*aa(i,i+1:)/rm
enddo
enddo!i
dt=dt*aa(n,n)
if(fl)then;dt=-dt;endif
end
--------------------------
reference
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/tdm-gcc-32/bin/../libexec/gcc/x86_64-w64-mingw32/4.8.2/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../gcc-4.8.2-mingw/configure --host=x86_64-w64-mingw32
--build=x86_64-unkno
wn-linux-gnu --target=x86_64-w64-mingw32
--prefix=/home/gfortran/gcc-home/binary/mingw32/nat
ive/x86_64/gcc/4.8.2
--with-sysroot=/home/gfortran/gcc-home/binary/mingw32/cross/x86_64/gcc/
4.8.2 --with-gcc --with-gnu-ld --with-gnu-as
--with-gmp=/home/gfortran/gcc-home/binary/mingw
32/native/x86_64/gmp
--with-mpfr=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/mpfr -
-with-mpc=/home/gfortran/gcc-home/binary/mingw32/native/x86_64/mpc
--with-cloog=/home/gfortr
an/gcc-home/binary/mingw32/native/x86_64/cloog
--with-isl=/home/gfortran/gcc-home/binary/min
gw32/native/x86_64/isl --enable-cloog-backend=isl
--enable-targets=i686-w64-mingw32,x86_64-w
64-mingw32 --enable-lto --enable-languages=c,c++,fortran --enable-threads=win32
--enable-sta
tic --enable-shared=lto-plugin --enable-plugins --enable-ld=yes
--enable-libquadmath --enabl
e-libquadmath-support --enable-libgomp --disable-nls --disable-tls
--disable-win32-registry
Thread model: win32
gcc version 4.8.2 (GCC)
More information about the Gcc-bugs
mailing list