<?xml version="1.0" encoding="UTF-8" ?>

<bugzilla version="5.2"
          urlbase="https://bugzilla.altlinux.org/"
          
          maintainer="jenya@basealt.ru"
>

    <bug>
          <bug_id>10905</bug_id>
          
          <creation_ts>2007-02-22 12:25:27 +0300</creation_ts>
          <short_desc>&apos;IMPLICIT&apos; rule may slow down program up to 100 times</short_desc>
          <delta_ts>2018-07-13 04:30:58 +0300</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>4</classification_id>
          <classification>Development</classification>
          <product>Sisyphus</product>
          <component>gcc4.1-fortran</component>
          <version>unstable</version>
          <rep_platform>all</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>CLOSED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="serpiph">serpiph</reporter>
          <assigned_to name="Dmitry V. Levin">ldv</assigned_to>
          <cc>glebfm</cc>
    
    <cc>mike</cc>
          
          <qa_contact>qa-sisyphus</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>45734</commentid>
    <comment_count>0</comment_count>
    <who name="serpiph">serpiph</who>
    <bug_when>2007-02-22 12:25:27 +0300</bug_when>
    <thetext>Имеется набор программ, которые изначально были написаны с использованием
умолчаний при использовании переменных (т.е. если имя переменной начинается на
I,J,K,L,M,N, то переменная будет типа INTEGER, если на другие буквы, то REAL).
То есть программа:
=============
program test
ii=5
x1=8.1
write(*,*)ii,x1
end
============
выдаст
    5 8.10000
То есть программа быдет эквивалентна такой:
============
program test
integer ii
real x1
ii=5
x1=8.1
write(*,*)ii,x1
end
=============
Так вот при определённых условиях (какие конкретно, не знаю, может набор из
них): использование в COMMON-блоках таких переменных, использование таких
переменных в функциях и процедурах программа может начать тормозиться до 100 раз
даже на строках вида
A=B
В моей программе цикл вида (X - необъявленная переменная)
============
do l=1,50
do k=1,50
do j=1,50
do i=1,50
if(условие)then
x(i,j,k)=выражение, состоящее тольлко из сложения и перемножения элементов массива x
end if
end do
end do
end do
end do
=========
поначалу исполнялся 50мс, а через некоторое время - 5с, причём в дальнейшем
время выполнения цикла всё увеличивалось.

Всю программу предоставить не могу.

После выставления
IMPLICIT NONE
и принудительного объявления
REAL X(50,50,50)
замедление цикла прекратилось.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>114542</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Shigorin">mike</who>
    <bug_when>2010-10-30 22:48:51 +0400</bug_when>
    <thetext>Предлагаю тоже в http://gcc.gnu.org/bugzilla/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>172614</commentid>
    <comment_count>2</comment_count>
    <who name="Dmitry V. Levin">ldv</who>
    <bug_when>2018-07-13 04:30:58 +0300</bug_when>
    <thetext>Очевидно, неактуально.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>