<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Issues with complex part designators in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429557#M163510</link>
    <description>&lt;P&gt;A little test program shows two issues I am having with&amp;nbsp; ifort (IFORT) 2021.3.0 20210609&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;program testit&lt;BR /&gt;implicit none&lt;BR /&gt;complex :: z&lt;BR /&gt;real,parameter :: y=sin(3.0), x=100.0&lt;BR /&gt;! TEST I&lt;BR /&gt;write(*,'(a)')repeat('=',80)&lt;BR /&gt;! z%re|mi can appear on the left-hand side of an assignment&lt;BR /&gt;z%re=100.0&lt;BR /&gt;z%im=sin(3.0)&lt;BR /&gt;write(*,*)z&lt;BR /&gt;write(*,*)'TEST I-a ',merge('PASSED','FAILED',z.eq.(x,y) )&lt;BR /&gt;write(*,*)'TEST I-b ',merge('PASSED','FAILED',z.eq.cmplx(100.0,sin(3.0)) )&lt;BR /&gt;! TEST II&lt;BR /&gt;write(*,'(a)')repeat('=',80)&lt;BR /&gt;! it can be passed as a subroutine argument and be changed&lt;BR /&gt;call trivial(z%re)&lt;BR /&gt;write(*,*)z&lt;BR /&gt;write(*,*)'TEST II ',merge('PASSED','FAILED',z.eq.(200.0,y))&lt;BR /&gt;contains&lt;/P&gt;
&lt;P&gt;subroutine trivial(r)&lt;BR /&gt;real :: r&lt;BR /&gt;r=r*2&lt;BR /&gt;end subroutine trivial&lt;/P&gt;
&lt;P&gt;end program testit&lt;/P&gt;
&lt;P&gt;! Per a discussion on comp.fortran.lang&lt;BR /&gt;!&lt;BR /&gt;! &lt;A href="https://groups.google.com/g/comp.lang.fortran/c/DXyrTYZbEI4" target="_blank"&gt;https://groups.google.com/g/comp.lang.fortran/c/DXyrTYZbEI4&lt;/A&gt;&lt;BR /&gt;!&lt;BR /&gt;! It appears that z%re and z%im should act as variables and be&lt;BR /&gt;! able to be altered by a procedure call,&lt;/P&gt;
&lt;P&gt;! if you add INTENT(INOUT) to "R" in TRIVIAL() you get a compile-time error&lt;/P&gt;
&lt;P&gt;! real,intent(inout) :: r&lt;/P&gt;
&lt;P&gt;! app/nochange.f90(16): error #6638: An actual argument is an expression&lt;BR /&gt;! or constant; this is not valid since the associated dummy argument has&lt;BR /&gt;! the explicit INTENT(OUT) or INTENT(INOUT) attribute. [REAL]&lt;BR /&gt;!&lt;BR /&gt;! Per the f2018 standard ...&lt;/P&gt;
&lt;P&gt;! 9.1 Designator&lt;BR /&gt;!&lt;BR /&gt;! R901 designator is object-name&lt;BR /&gt;! or array-element&lt;BR /&gt;! or array-section&lt;BR /&gt;! or coindexed-named-object&lt;BR /&gt;! or complex-part-designator&lt;BR /&gt;! or structure-component&lt;BR /&gt;! or substring&lt;BR /&gt;!&lt;BR /&gt;! 1 The appearance of a data object designator in a context that requires&lt;BR /&gt;! its value is termed a reference.&lt;BR /&gt;!&lt;BR /&gt;! 9.2 Variable is designator&lt;BR /&gt;!&lt;BR /&gt;! R902 variable&lt;BR /&gt;!&lt;BR /&gt;There is nothing in&lt;BR /&gt;!&lt;BR /&gt;19.6.5 Events that cause variables to become defined&lt;BR /&gt;1 Variables become defined by the following events.&lt;BR /&gt;&lt;BR /&gt;the long list that disqualifies a complex-part-designator&lt;BR /&gt;from being manipulated through the argument association&lt;BR /&gt;with a dummy argument.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;And when debug flags are added TEST I indicates an error that does not appear to&lt;BR /&gt;be correct ...&lt;/P&gt;
&lt;P&gt;forrtl: severe (194): Run-Time Check Failure. The variable 'testit_$Z'&lt;BR /&gt;is being used in 'app/nochange.f90(8,4)' without being defined&lt;BR /&gt;Image PC Routine Line Source &lt;BR /&gt;nochange 00000000004039AD MAIN__ 8 nochange.f90&lt;BR /&gt;nochange 00000000004037E2 Unknown Unknown Unknown&lt;BR /&gt;libc-2.31.so 00007F6D2E7B8083 __libc_start_main Unknown Unknown&lt;BR /&gt;nochange 00000000004036EE Unknown Unknown Unknown&lt;/P&gt;
&lt;P&gt;&amp;lt;INFO&amp;gt; COMPILER OPTIONS: -warn all -check all -error-limit 1 -O0 -g -assume byterecl -traceback&lt;/P&gt;</description>
    <pubDate>Sat, 12 Nov 2022 01:38:02 GMT</pubDate>
    <dc:creator>ur</dc:creator>
    <dc:date>2022-11-12T01:38:02Z</dc:date>
    <item>
      <title>Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429557#M163510</link>
      <description>&lt;P&gt;A little test program shows two issues I am having with&amp;nbsp; ifort (IFORT) 2021.3.0 20210609&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;P&gt;program testit&lt;BR /&gt;implicit none&lt;BR /&gt;complex :: z&lt;BR /&gt;real,parameter :: y=sin(3.0), x=100.0&lt;BR /&gt;! TEST I&lt;BR /&gt;write(*,'(a)')repeat('=',80)&lt;BR /&gt;! z%re|mi can appear on the left-hand side of an assignment&lt;BR /&gt;z%re=100.0&lt;BR /&gt;z%im=sin(3.0)&lt;BR /&gt;write(*,*)z&lt;BR /&gt;write(*,*)'TEST I-a ',merge('PASSED','FAILED',z.eq.(x,y) )&lt;BR /&gt;write(*,*)'TEST I-b ',merge('PASSED','FAILED',z.eq.cmplx(100.0,sin(3.0)) )&lt;BR /&gt;! TEST II&lt;BR /&gt;write(*,'(a)')repeat('=',80)&lt;BR /&gt;! it can be passed as a subroutine argument and be changed&lt;BR /&gt;call trivial(z%re)&lt;BR /&gt;write(*,*)z&lt;BR /&gt;write(*,*)'TEST II ',merge('PASSED','FAILED',z.eq.(200.0,y))&lt;BR /&gt;contains&lt;/P&gt;
&lt;P&gt;subroutine trivial(r)&lt;BR /&gt;real :: r&lt;BR /&gt;r=r*2&lt;BR /&gt;end subroutine trivial&lt;/P&gt;
&lt;P&gt;end program testit&lt;/P&gt;
&lt;P&gt;! Per a discussion on comp.fortran.lang&lt;BR /&gt;!&lt;BR /&gt;! &lt;A href="https://groups.google.com/g/comp.lang.fortran/c/DXyrTYZbEI4" target="_blank"&gt;https://groups.google.com/g/comp.lang.fortran/c/DXyrTYZbEI4&lt;/A&gt;&lt;BR /&gt;!&lt;BR /&gt;! It appears that z%re and z%im should act as variables and be&lt;BR /&gt;! able to be altered by a procedure call,&lt;/P&gt;
&lt;P&gt;! if you add INTENT(INOUT) to "R" in TRIVIAL() you get a compile-time error&lt;/P&gt;
&lt;P&gt;! real,intent(inout) :: r&lt;/P&gt;
&lt;P&gt;! app/nochange.f90(16): error #6638: An actual argument is an expression&lt;BR /&gt;! or constant; this is not valid since the associated dummy argument has&lt;BR /&gt;! the explicit INTENT(OUT) or INTENT(INOUT) attribute. [REAL]&lt;BR /&gt;!&lt;BR /&gt;! Per the f2018 standard ...&lt;/P&gt;
&lt;P&gt;! 9.1 Designator&lt;BR /&gt;!&lt;BR /&gt;! R901 designator is object-name&lt;BR /&gt;! or array-element&lt;BR /&gt;! or array-section&lt;BR /&gt;! or coindexed-named-object&lt;BR /&gt;! or complex-part-designator&lt;BR /&gt;! or structure-component&lt;BR /&gt;! or substring&lt;BR /&gt;!&lt;BR /&gt;! 1 The appearance of a data object designator in a context that requires&lt;BR /&gt;! its value is termed a reference.&lt;BR /&gt;!&lt;BR /&gt;! 9.2 Variable is designator&lt;BR /&gt;!&lt;BR /&gt;! R902 variable&lt;BR /&gt;!&lt;BR /&gt;There is nothing in&lt;BR /&gt;!&lt;BR /&gt;19.6.5 Events that cause variables to become defined&lt;BR /&gt;1 Variables become defined by the following events.&lt;BR /&gt;&lt;BR /&gt;the long list that disqualifies a complex-part-designator&lt;BR /&gt;from being manipulated through the argument association&lt;BR /&gt;with a dummy argument.&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;And when debug flags are added TEST I indicates an error that does not appear to&lt;BR /&gt;be correct ...&lt;/P&gt;
&lt;P&gt;forrtl: severe (194): Run-Time Check Failure. The variable 'testit_$Z'&lt;BR /&gt;is being used in 'app/nochange.f90(8,4)' without being defined&lt;BR /&gt;Image PC Routine Line Source &lt;BR /&gt;nochange 00000000004039AD MAIN__ 8 nochange.f90&lt;BR /&gt;nochange 00000000004037E2 Unknown Unknown Unknown&lt;BR /&gt;libc-2.31.so 00007F6D2E7B8083 __libc_start_main Unknown Unknown&lt;BR /&gt;nochange 00000000004036EE Unknown Unknown Unknown&lt;/P&gt;
&lt;P&gt;&amp;lt;INFO&amp;gt; COMPILER OPTIONS: -warn all -check all -error-limit 1 -O0 -g -assume byterecl -traceback&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 01:38:02 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429557#M163510</guid>
      <dc:creator>ur</dc:creator>
      <dc:date>2022-11-12T01:38:02Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429583#M163511</link>
      <description>&lt;P&gt;RE: INTENT(OUT) causing error. Note, when pasting code, click on toolbar ... then &amp;lt;/&amp;gt;, then pull down and select language formatting:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;subroutine trivial(r)
real, intent(out) :: r
r=r*2 ! *** error, r used as input on this line, requires intent(inout) which is by default
end subroutine trivial&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;RE: the complex uninitialized on write(*,*) z&lt;/P&gt;
&lt;P&gt;This is in error, but it may be difficult for the compiler to properly detect. While in your case, where you initialized both components (re and im) of z, consider if you only initialized one. Would z then be considered initialized.&lt;/P&gt;
&lt;P&gt;I do believe the compiler could keep track of the known components of a complex number type for runtime checks, extending this to a UDT might be problematic.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For now, to work around the error message, insert&lt;/P&gt;
&lt;P&gt;&amp;nbsp; z = 0.0&lt;/P&gt;
&lt;P&gt;somewhere near the beginning of the procedure.&lt;/P&gt;
&lt;P&gt;Or, in this specific case use&lt;/P&gt;
&lt;P&gt;&amp;nbsp; z = (x, y)&lt;/P&gt;
&lt;P&gt;or&lt;/P&gt;
&lt;P&gt;&amp;nbsp;z = cmplx(100.0,sin(3.0))&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;! **** Intel development, using an older ifort 2020.0.166, the following produces a compilation error:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; z = (100.0, sin(3.0))&lt;/P&gt;
&lt;P&gt;error #6213: A constant or named constant is required in this context. [SIN]&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 12:00:21 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429583#M163511</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2022-11-12T12:00:21Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429589#M163512</link>
      <description>&lt;P&gt;Jim, Intel Support Team members,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As you may be able to decipher,&amp;nbsp; OP intends to raise a basic question regarding Intel Fortran implementation of the Fortran 2008 feature that introduced %RE and %IM &lt;EM&gt;complex-part-designator&lt;/EM&gt;s.&amp;nbsp; This is related to the &lt;STRONG&gt;&lt;A href="https://groups.google.com/g/comp.lang.fortran/c/DXyrTYZbEI4/m/hgyz2-bjBAAJ" target="_self"&gt;ongoing discussion thread&lt;/A&gt; &lt;/STRONG&gt;at comp.lang.fortran.&amp;nbsp; But the posted example in the original post attempts to get into additional detail which might be confusing to some readers and which is not pertinent to main question re: the latest Intel Fortran compilers, whether it be IFORT or IFX.&lt;/P&gt;
&lt;P&gt;The standard ostensibly supports both these designators to appear in all variable definition contexts whereas Intel Fortran fails to conform to the standard in the context of an actual argument.&amp;nbsp; Intel members, will it be possible for you to follow-up with Intel Fortran compiler team on this and open a compiler defect ticket as needed?&amp;nbsp; Here's an additional example showing the issue:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;contains
   subroutine s1
      complex :: c
      c = ( 0.0, 0.0 )
      call s2( c%re )
   end subroutine
   subroutine s2( x )
      real, intent(out) :: x  !&amp;lt;-- also look at intent(inout)
      x = 0.0
   end subroutine
end &lt;/LI-CODE&gt;&lt;LI-CODE lang="none"&gt;C:\temp&amp;gt;ifort /c /standard-semantics p.f90
Intel(R) Fortran Intel(R) 64 Compiler Classic for applications running on Intel(R) 64, Version 2021.7.0 Build 20220726_000000
Copyright (C) 1985-2022 Intel Corporation.  All rights reserved.

p.f90(5): error #6638: An actual argument is an expression or constant; this is not valid since the associated dummy argument has the explicit INTENT(OUT) or INTENT(INOUT) attribute.   [REAL]
      call s2( c%re )
^
compilation aborted for p.f90 (code 1)&lt;/LI-CODE&gt;&lt;LI-CODE lang="none"&gt;C:\temp&amp;gt;ifx /c /standard-semantics p.f90
Intel(R) Fortran Compiler for applications running on Intel(R) 64, Version 2022.2.0 Build 20220730
Copyright (C) 1985-2022 Intel Corporation. All rights reserved.

p.f90(5): error #6638: An actual argument is an expression or constant; this is not valid since the associated dummy argument has the explicit INTENT(OUT) or INTENT(INOUT) attribute.   [REAL]
      call s2( c%re )
^
compilation aborted for p.f90 (code 1)&lt;/LI-CODE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 14:32:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429589#M163512</guid>
      <dc:creator>FortranFan</dc:creator>
      <dc:date>2022-11-12T14:32:26Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429604#M163515</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The second issue is that the "-check all" switch causes a run-time failure of standard-conforming code.&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;
program testit
use, intrinsic :: iso_fortran_env, only : dp=&amp;gt;real64
implicit none
complex(kind=dp) :: z
   z%re=100.0_dp
   z%im=200.0_dp
   write(*,*)z
end program testit
&lt;/LI-CODE&gt;
&lt;P&gt;There is nothing I can see in the standard that says a complex variable&lt;BR /&gt;must be initialized before a LHS complex-part-designator is allowed,&lt;BR /&gt;so this would be conformant Fortran but is flagged with a fatal error, not&lt;BR /&gt;just a warning, when "-check all" is used. This makes employing the&lt;BR /&gt;check on otherwise correct code problematic. Perhaps a restriction in the&lt;/P&gt;
&lt;P&gt;standard requiring initialization would have been prudent, but I see no such requirement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 16:50:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429604#M163515</guid>
      <dc:creator>ur</dc:creator>
      <dc:date>2022-11-12T16:50:10Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429615#M163516</link>
      <description>&lt;P&gt;I suspect (the error message infers) that the initialization of c in subroutine s1 with a literal expressions in effect makes c appear as if it were a literal.&lt;/P&gt;
&lt;P&gt;*** However, upon further testing, this is not the case&lt;/P&gt;
&lt;P&gt;c = ( 0.0, 0.0 ) ! fails&lt;/P&gt;
&lt;P&gt;c = cmplx( 0.0, 0.0 ) ! fails&lt;/P&gt;
&lt;P&gt;and commenting out c = ... fails with call using c%re as actual argument (and dummy with intent(out))&lt;/P&gt;
&lt;P&gt;intent(inout) also failed&lt;/P&gt;
&lt;P&gt;but no intent declaration succeeds&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Definitely a bug&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 17:37:13 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429615#M163516</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2022-11-12T17:37:13Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429616#M163517</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&lt;SPAN&gt;There is nothing I can see in the standard that says a complex variable&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;must be initialized before a LHS complex-part-designator is allowed&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;That was not the point. The error is the complex variable z&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;reports runtime error of variable used without initialization on write(*,*)z&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;when member variables %re and/or %im are initialized.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Initializing z itself (as opposed to individual parts) solves the erronious? runtime error message.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;SPAN&gt;Jim Dempsey&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 17:41:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429616#M163517</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2022-11-12T17:41:32Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429620#M163518</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;program testit
implicit none
complex :: z
real,parameter :: y=sin(3.0), x=100.0
! TEST I
write(*,'(a)')repeat('=',80)
! z%re|mi can appear on the left-hand side of an assignment
z%re=100.0
z%im=sin(3.0)
write(*,*)z
write(*,*)'TEST I-a ',merge('PASSED','FAILED',z.eq.(x,y) )
write(*,*)'TEST I-b ',merge('PASSED','FAILED',z.eq.cmplx(100.0,sin(3.0)) )
! TEST II
write(*,'(a)')repeat('=',80)
! it can be passed as a subroutine argument and be changed
call trivial(z%re)
write(*,*)z
write(*,*)'TEST II ',merge('PASSED','FAILED',z.eq.(200.0,y))
contains

subroutine trivial(r)
real :: r
r=r*2
end subroutine trivial

end program testit&lt;/LI-CODE&gt;
&lt;P&gt;Much neater to create a cmplx in one line than two lines.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 18:16:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429620#M163518</guid>
      <dc:creator>JohnNichols</dc:creator>
      <dc:date>2022-11-12T18:16:20Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429621#M163519</link>
      <description>&lt;LI-CODE lang="fortran"&gt;program testit
use, intrinsic :: iso_fortran_env, only : dp=&amp;gt;real64
implicit none
complex(kind=dp) :: z !=(0.0,0.0)
real(kind=dp) :: x
   z%re=3.0_dp  ! &amp;lt;= The error occurs here, not in write
   z%im=4.0_dp
   x=abs(z)
   write(*,*)x
end program testit
&lt;/LI-CODE&gt;
&lt;P&gt;I know how to work around it; the WRITE() just keeps the lines from being optimized away easily;&amp;nbsp; the error occurs on line 6 and is definitely erroneous per the standard; and works with full debug options on with three other compilers with no warning at all; although some warn if line 7 is removed when line 8 is encountered, that is OK. Good, actually.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 18:15:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429621#M163519</guid>
      <dc:creator>ur</dc:creator>
      <dc:date>2022-11-12T18:15:59Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429627#M163520</link>
      <description>&lt;P&gt;&lt;EM&gt;complex-part-designator&lt;/EM&gt;s are variables (see F2018 R901 and R902.) If Intel Fortran is treating them as expressions, that's a bug.&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 20:24:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429627#M163520</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2022-11-12T20:24:57Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429633#M163521</link>
      <description>&lt;P&gt;Running different variations of your last program one gets :&lt;/P&gt;
&lt;P&gt;1. Everything normal.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot_20221112_033159.png" style="width: 950px;"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/35072iBD0A3E39244EDABE/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Screenshot_20221112_033159.png" alt="Screenshot_20221112_033159.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;2. IN debug mode you get the standard weird number that is constantly used applied to the real part. when you do not set Z real&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot_20221112_033254.png" style="width: 956px;"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/35073iC1E1D232EE4114A2/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Screenshot_20221112_033254.png" alt="Screenshot_20221112_033254.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;3. All reals are initialized on creation to the weird number that some one will tell me is something ZZZZZZZZZZZZZZZ in hexadecimal.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot_20221112_033337.png" style="width: 989px;"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/35074iADF75EAD6C093284/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Screenshot_20221112_033337.png" alt="Screenshot_20221112_033337.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;4.&amp;nbsp; In release mode with all the warnings I can find turned then z real is set to zero -- debug and release should not be different.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;No idea what the standard says about what value uninitialized variables take, but it is always a bad idea,&amp;nbsp; if I test the last picture for X &amp;lt; 0 by mistake it is true in 3. and not true in 4.&amp;nbsp; Fortran is the same.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Screenshot_20221112_033805.png" style="width: 933px;"&gt;&lt;img src="https://community.intel.com/t5/image/serverpage/image-id/35075iDBBA4BBEFE60F51B/image-size/large/is-moderation-mode/true?v=v2&amp;amp;px=999&amp;amp;whitelist-exif-data=Orientation%2CResolution%2COriginalDefaultFinalSize%2CCopyright" role="button" title="Screenshot_20221112_033805.png" alt="Screenshot_20221112_033805.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Interesting.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 21:48:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429633#M163521</guid>
      <dc:creator>JohnNichols</dc:creator>
      <dc:date>2022-11-12T21:48:32Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429643#M163522</link>
      <description>&lt;P&gt;FWIW this error does not occur with a UDT&lt;/P&gt;
&lt;LI-CODE lang="fortran"&gt;module mod_udt
    use, intrinsic :: iso_fortran_env, only : dp=&amp;gt;real64
    type udt_t
        real(kind=dp) :: re
        real(kind=dp) :: im
    end type udt_t
end module mod_udt
program testit
    use mod_udt
    implicit none
    complex(kind=dp) :: z !=(0.0,0.0)
    real(kind=dp) :: x
    type(udt_t) :: udt
    udt%re=3.0_dp ! &amp;lt;= no error here
    udt%im=4.0_dp
    z%re=3.0_dp  ! &amp;lt;= The error occurs here, not in write
    z%im=4.0_dp
    x=abs(z)
    write(*,*)x
end program testit
&lt;/LI-CODE&gt;
&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Sat, 12 Nov 2022 23:56:37 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1429643#M163522</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2022-11-12T23:56:37Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1430353#M163563</link>
      <description>&lt;P&gt;I have to agree with Steve.&amp;nbsp; This looks like a bug in the Front End, the parsing of the language.&amp;nbsp; The runtime issue is falling out from that.&amp;nbsp; If the Front End does not properly identify a variable reference versus an expression reference then the runtime will misbehave.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I will open (at least 1) bug report.&amp;nbsp; There may be more work required in other parts of the compiler but for sure I see a front-end issue.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;ron&lt;/P&gt;</description>
      <pubDate>Tue, 15 Nov 2022 16:59:50 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1430353#M163563</guid>
      <dc:creator>Ron_Green</dc:creator>
      <dc:date>2022-11-15T16:59:50Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1430364#M163566</link>
      <description>&lt;P&gt;FWIW, this isn't the first time ifort has had problems with complex-part-designators.&lt;/P&gt;</description>
      <pubDate>Tue, 15 Nov 2022 17:35:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1430364#M163566</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2022-11-15T17:35:36Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1430728#M163589</link>
      <description>&lt;P&gt;I opened 2 bug reports on this&lt;/P&gt;
&lt;P&gt;CMLRLLVM-41931 for passing z%re to a subroutine that updates the value of the arg, but actual arg is unchanged after return.&lt;/P&gt;
&lt;P&gt;CMLRIL0-35035 for the -check uninit that erroneously flags the assignment as illegal use of uninit variable.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 16 Nov 2022 21:49:47 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1430728#M163589</guid>
      <dc:creator>Ron_Green</dc:creator>
      <dc:date>2022-11-16T21:49:47Z</dc:date>
    </item>
    <item>
      <title>Re: Issues with complex part designators</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1626609#M173450</link>
      <description>&lt;P&gt;&lt;SPAN class="sub_section_element_selectors"&gt;This issue has been fixed in the recently released Intel Fortran Compiler, available for download as part of&amp;nbsp;&lt;/SPAN&gt;&lt;A class="sub_section_element_selectors" href="https://software.intel.com/content/www/us/en/develop/tools/oneapi/hpc-toolkit.html" target="_self" rel="nofollow noopener noreferrer"&gt;Intel HPC Toolkit 2024.2.1&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 28 Aug 2024 00:24:03 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Issues-with-complex-part-designators/m-p/1626609#M173450</guid>
      <dc:creator>Devorah_H_Intel</dc:creator>
      <dc:date>2024-08-28T00:24:03Z</dc:date>
    </item>
  </channel>
</rss>

