<?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 It's invalid because in that in Intel® Fortran Compiler</title>
    <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160273#M142806</link>
    <description>&lt;P&gt;It's invalid because in that last assignment, "a" is in an expression, which requires a value, and that in turn requires that the value be defined. Yes, an exception for this case could be carved out, but it hasn't.&lt;/P&gt;</description>
    <pubDate>Tue, 31 Jul 2018 13:08:29 GMT</pubDate>
    <dc:creator>Steve_Lionel</dc:creator>
    <dc:date>2018-07-31T13:08:29Z</dc:date>
    <item>
      <title>Allocatable character problem</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160254#M142787</link>
      <description>&lt;P style="margin:0in;font-family:Calibri;font-size:11.0pt"&gt;Hi,&lt;/P&gt;

&lt;P style="margin:0in;font-family:Calibri;font-size:11.0pt"&gt;We have found a serious problem with allocateable character in Intel® Parallel Studio XE 2018 Update 3 Composer Edition for Fortran Windows.&lt;/P&gt;

&lt;P style="margin:0in;font-family:Calibri;font-size:11.0pt"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin:0in;font-family:Calibri;font-size:11.0pt"&gt;It seems that a move from types in an array causes gigantic memory leaks. It does not work either if a custom finalize stuff is added to the type and frees all memory from allocated characters.&lt;/P&gt;

&lt;P style="margin:0in;font-family:Calibri;font-size:11.0pt"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin:0in;font-family:Calibri;font-size:11.0pt"&gt;When you run the small code, you will see that in the second loop where the data is moved the memory problem occurs. You will see that the small stuff needs about 500MB on the heap!!&lt;/P&gt;

&lt;P style="margin:0in;font-family:Calibri;font-size:11.0pt"&gt;&amp;nbsp;&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;          TEST1: block 
            type :: TestData
              character(len=20)               :: UID = ' '      ! Name of global variable
              character(:) , allocatable      :: strVal         ! Value of variable dynamic string
             !character(len=80)               :: strVal         ! Value of variable constant string
              integer(2)                      :: Container = 0
            end type TestData

            type(TestData), pointer :: pData(:)
            type(TestData)          :: item
            integer                 :: i, n, nItems, nAdd
            character(len=20)       :: strNum

            nItems = 10000
            nAdd = 2000

            allocate( pData(nItems+nAdd) )

            do n=1,nItems
              write(strNum,FMT='(I8)') n
              item % UID = '#V'//adjustl(strNum)
              item % strVal = 'xyz'
              pData(n) = item
            end do

            continue

            do n=1,nAdd-1
              write(strNum,FMT='(I8)') n
              item % UID = '#A'//adjustl(strNum)
              item % strVal = 'Hallo'
              pData(n+1:nItems+n+1) = pData(n:nItems+n)
            end do

          end block TEST1
&lt;/PRE&gt;

&lt;P style="background-color: transparent; color: rgb(83, 87, 94); font-family: Calibri; font-size: 14.66px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;Just for information, the same code compiled with Intel® Parallel Studio XE 2016 works fine.&lt;/P&gt;

&lt;P style="background-color: transparent; color: rgb(83, 87, 94); font-family: Calibri; font-size: 14.66px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="background-color: transparent; color: rgb(83, 87, 94); font-family: Calibri; font-size: 14.66px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; orphans: 2; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;"&gt;BTW: problem is was already submitted to intel support too, but maybe someone here has the same problem and a possible solution for it…&lt;/P&gt;</description>
      <pubDate>Fri, 20 Jul 2018 09:19:40 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160254#M142787</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-20T09:19:40Z</dc:date>
    </item>
    <item>
      <title>For better diagnostics, I've</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160255#M142788</link>
      <description>&lt;P style="margin: 0px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;For better diagnostics, I've added a small FTN project which shows the problem too. When you run the console application, you will see that there is a huge heap allocation problem. I've added some print lines which show how much memory is allocated for the small program on my PC. When you run it you will see the following output:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT face="Calibri"&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;SPAN style="margin: 0px;"&gt;&amp;nbsp;&lt;/SPAN&gt;Before alloc, heap 3640 KB&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT face="Calibri"&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;SPAN style="margin: 0px;"&gt;&amp;nbsp;&lt;/SPAN&gt;After alloc, heap 4332 KB&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT face="Calibri"&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;SPAN style="margin: 0px;"&gt;&amp;nbsp;&lt;/SPAN&gt;Data assignment done, heap 4692 KB&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT face="Calibri"&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;SPAN style="margin: 0px;"&gt;&amp;nbsp;&lt;/SPAN&gt;Data move done, heap 477364 KB!!!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;

&lt;P style="margin: 0px;"&gt;&lt;STRONG&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT face="Calibri"&gt;&lt;FONT size="3"&gt;&lt;FONT color="#000000"&gt;&lt;SPAN style="margin: 0px;"&gt;&amp;nbsp;&lt;/SPAN&gt;Deallocate done, heap 476800 KB!!!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jul 2018 07:47:35 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160255#M142788</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-24T07:47:35Z</dc:date>
    </item>
    <item>
      <title>In additon I've added 2</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160256#M142789</link>
      <description>&lt;P&gt;In additon I've added 2 screenshots from debugging session and process memory info. Looks not fine at all...&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jul 2018 10:54:20 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160256#M142789</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-24T10:54:20Z</dc:date>
    </item>
    <item>
      <title>Maybe IanH or Steve can</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160257#M142790</link>
      <description>&lt;P&gt;Maybe IanH or Steve can answer this better.&lt;/P&gt;

&lt;P&gt;&amp;nbsp; type(TestData), pointer :: pData(:)&lt;/P&gt;

&lt;P&gt;Is an unallocated array of pointers to TestData objects&lt;/P&gt;

&lt;P&gt;&amp;nbsp; allocate( pData(nItems+nAdd) )&lt;/P&gt;

&lt;P&gt;Allocates, but does not initialize, the&amp;nbsp;array of pointers to TestData objects&lt;/P&gt;

&lt;P&gt;&amp;nbsp; pData(n) = item&lt;/P&gt;

&lt;P&gt;Copies an item of TestData to (into) a TestData object pointed to by an uninitialized pointer. Note, the prior statement is not the same as (auto) reallocate left hand side for unallocated allocatable object.&lt;/P&gt;

&lt;P&gt;Perhaps one means of fixing the code would be to use:&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp; type(TestData), allocatable :: pData(:)&lt;/P&gt;

&lt;P&gt;The earlier compilers used to have a problem with the above syntax, I haven't tried using an allocatable array of allocatable objects lately.&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jul 2018 15:28:32 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160257#M142790</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2018-07-24T15:28:32Z</dc:date>
    </item>
    <item>
      <title>Thanks for your feedback Jim,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160258#M142791</link>
      <description>&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Thanks for your feedback Jim, but this is not the problem. When you change pData&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="margin: 0px; color: black; line-height: 107%; font-family: Consolas; font-size: 9.5pt;"&gt;to &lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;allocatable the behavior does not change at all.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I'm quite sure there is a problem is the management of data assignment with allocatable stuff in the compiler, because the problem comes from this line:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:; class-name:dark;"&gt;  ! Move of data in the vector, should simulate data shift in when sorted
  do n=1,nAdd-1
    write(strNum,FMT='(I8)') n
    item % UID = '#A'//adjustl(strNum)
    item % strVal = 'Hallo'
    pData(n+1:nItems+n+1) = pData(n:nItems+n) ! Here the heap memory leak occurs!!
  end do
&lt;/PRE&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;As I mentioned, I've also tried to add a final code to the type and manually free the memory there. Does not work either.&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jul 2018 17:02:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160258#M142791</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-24T17:02:00Z</dc:date>
    </item>
    <item>
      <title>The behavior = on pointer(s)</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160259#M142792</link>
      <description>&lt;P&gt;The behavior = on pointer(s) is different than = on (non-pointer) array element(s).&lt;/P&gt;

&lt;P&gt;Arrays, with reallocate lhs in effect, may use, allocate, or reallocate the entity on the lhs.&lt;/P&gt;

&lt;P&gt;whereas&lt;/P&gt;

&lt;P&gt;pointers, require the lhs to point to a valid object (else undefined behavior occurs), the lhs is treated as a reference into which the rhs is copied into. IOW the = on pointer(s) does not copy the pointer, rather it copies the contents of the object referenced.&lt;/P&gt;

&lt;P&gt;The =&amp;gt; operator constructs a pointer to the rhs (if rhs is a pointer it needs to be defined for defined behavior).&lt;/P&gt;

&lt;P&gt;The syntax of your last statement will attempt to&lt;/P&gt;

&lt;P&gt;copy into the objects as referenced by pointers contained within pData(n+1:nItems+n+1),&lt;BR /&gt;
	the contents of the objects referenced by pointers contained within pData(n:nItems+n)&lt;/P&gt;

&lt;P&gt;IOW, if the pointers referenced on both sides, are not initialized or not associated, then undefined behavior occurs.&lt;/P&gt;

&lt;P&gt;If you desire to copy the pointers, then you will have to do it with an explicit loop using =&amp;gt; and being careful about aliases and/or nullifications.&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;! Move of data in the vector, should simulate data shift in when sorted
&amp;nbsp; do n=1,nAdd-1
&amp;nbsp;&amp;nbsp;&amp;nbsp; write(strNum,FMT='(I8)') n
&amp;nbsp;&amp;nbsp;&amp;nbsp; item % UID = '#A'//adjustl(strNum)
&amp;nbsp;&amp;nbsp;&amp;nbsp; item % strVal = 'Hallo'
&amp;nbsp;&amp;nbsp;&amp;nbsp; do j=nItems+n-1,1,-1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pData(j+1) =&amp;gt; pData(j) ! requires pData(j) to exist
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nullify(pData(1))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate(pData(1))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pData(1) = item
    end do
&amp;nbsp; end do&lt;/PRE&gt;

&lt;P&gt;The above is descriptive but non-optimal.&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jul 2018 21:22:24 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160259#M142792</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2018-07-24T21:22:24Z</dc:date>
    </item>
    <item>
      <title>Jim, sorry I cannot follow</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160260#M142793</link>
      <description>&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Jim, sorry I cannot follow your approach here at all. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin:0cm;margin-bottom:.0001pt"&gt;&lt;SPAN lang="EN-US" style="margin: 0px; color: black; font-family: &amp;quot;Calibri&amp;quot;,sans-serif;"&gt;&lt;FONT size="3"&gt;There is single allocated pData array. It is based on a type. The type initialization is controlled by the compiler. Therefore, it should not be a problem. The data in the type is also correctly initialized as you can see in the debugger. In the type there as a dynamic allocateable character strVal. This one must be controlled by the compiler (init, allocate, deallocate): &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;  type :: TestData
    character(len=20)               :: UID = ' '      ! Name of global variable
    character(:) , allocatable      :: strVal         ! Value of variable dynamic string
    integer(2)                      :: Container = 0
  end type TestData
&lt;/PRE&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Exactly this stuff seems to fail here. It works well when only following change is applied to the type:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;  type :: TestData
    character(len=20)               :: UID = ' '      ! Name of global variable
    character(len=80)               :: strVal         ! Value of variable constant string
    integer(2)                      :: Container = 0
  end type TestData
&lt;/PRE&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;How should it be possible to nullify an item which is not directly allocated. You can call nullify(pData) but not nullify( pdata(i) )&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I've also tried the following stuff and as I already mentioned, it does not work either:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;  ! Move of data in the vector, should simulate data shift in when sorted
  do n=1,nAdd-1
    write(strNum,FMT='(I8)') n
    item % UID = '#A'//adjustl(strNum)
    item % strVal = 'Hallo'
    !pData(n+1:nItems+n+1) = pData(n:nItems+n) ! Here the heap memory leak occurs!!
    do i=n+nItems, n, -1
      if( allocated(pData(i+1) % strVal) ) deallocate( pData(i+1) % strVal )
      pData(i+1) = pData(i)
    end do
    pData(n) = item
  end do
&lt;/PRE&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Yesterday I've got the feedback from Intel Customer Support that they can reproduce the problem too. They also cannot offer a solution yet. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Very bad at all...&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 25 Jul 2018 08:25:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160260#M142793</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-25T08:25:00Z</dc:date>
    </item>
    <item>
      <title>I wish to apologize about</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160261#M142794</link>
      <description>&lt;P&gt;I wish to apologize about array of pointers, I was wrong about this. pData is a single pointer to an array of objects as you said.&lt;/P&gt;

&lt;P&gt;Minor edits appears to work with V17.0.5.267&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;program AllocatableCharacterProblem
&amp;nbsp;&amp;nbsp;&amp;nbsp; implicit none
&amp;nbsp;&amp;nbsp;&amp;nbsp; type :: TestData
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; character(len=20)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: UID = ' '&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Name of global variable
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; character(:) , allocatable&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: strVal&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Value of variable dynamic string
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !character(len=80)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: strVal&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Value of variable constant string
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer(2)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: Container = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp; end type TestData

&amp;nbsp;&amp;nbsp;&amp;nbsp; type(TestData), pointer :: pData(:)
&amp;nbsp;&amp;nbsp;&amp;nbsp; type(TestData)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: item
&amp;nbsp;&amp;nbsp;&amp;nbsp; integer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: i, n, nItems, nAdd
&amp;nbsp;&amp;nbsp;&amp;nbsp; character(len=20)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: strNum

&amp;nbsp;&amp;nbsp;&amp;nbsp; nItems = 100&amp;nbsp;&amp;nbsp;&amp;nbsp; ! reduce counts for quick test verification to console
&amp;nbsp;&amp;nbsp;&amp;nbsp; nAdd = 20

&amp;nbsp;&amp;nbsp;&amp;nbsp; allocate( pData(nItems+nAdd) )
&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; do n=1,nItems
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(strNum,FMT='(I8)') n
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; item % UID = '#V'//adjustl(strNum)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; item % strVal = 'xyz'//adjustl(strNum) ! add sequence number to disambiguate results
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pData(n) = item
&amp;nbsp;&amp;nbsp;&amp;nbsp; end do

&amp;nbsp;&amp;nbsp;&amp;nbsp; continue

&amp;nbsp;&amp;nbsp;&amp;nbsp; do n=1,nAdd ! original code had nAdd-1, which did not add the nAdd values
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; write(strNum,FMT='(I8)') n
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; item % UID = '#A'//adjustl(strNum)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; item % strVal = 'Hallo'//adjustl(strNum)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pData(n+1:nItems+n+1) = pData(n:nItems+n)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pData(n) = item ! add code to copy in new item
&amp;nbsp;&amp;nbsp;&amp;nbsp; end do

&amp;nbsp;&amp;nbsp;&amp;nbsp; do n=1,nItems+nAdd
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print *, pData(n)%UID, pData(n)%strVal
&amp;nbsp;&amp;nbsp;&amp;nbsp; end do
end program AllocatableCharacterProblem
&lt;/PRE&gt;

&lt;P&gt;and&lt;/P&gt;

&lt;PRE class="brush:plain; class-name:dark;"&gt;Compiling with Intel(R) Visual Fortran Compiler 17.0.5.267 [Intel(R) 64]...
...
&amp;nbsp;#A1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo1
&amp;nbsp;#A2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo2
&amp;nbsp;#A3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo3
&amp;nbsp;#A4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo4
&amp;nbsp;#A5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo5
&amp;nbsp;#A6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo6
&amp;nbsp;#A7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo7
&amp;nbsp;#A8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo8
&amp;nbsp;#A9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo9
&amp;nbsp;#A10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo10
&amp;nbsp;#A11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo11
&amp;nbsp;#A12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo12
&amp;nbsp;#A13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo13
&amp;nbsp;#A14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo14
&amp;nbsp;#A15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo15
&amp;nbsp;#A16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo16
&amp;nbsp;#A17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo17
&amp;nbsp;#A18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo18
&amp;nbsp;#A19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo19
&amp;nbsp;#A20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hallo20
&amp;nbsp;#V1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz1
&amp;nbsp;#V2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz2
&amp;nbsp;#V3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz3
&amp;nbsp;#V4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz4
&amp;nbsp;#V5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz5
&amp;nbsp;#V6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz6
&amp;nbsp;#V7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz7
&amp;nbsp;#V8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz8
&amp;nbsp;#V9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz9
&amp;nbsp;#V10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz10
&amp;nbsp;#V11&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz11
&amp;nbsp;#V12&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz12
&amp;nbsp;#V13&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz13
&amp;nbsp;#V14&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz14
&amp;nbsp;#V15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz15
&amp;nbsp;#V16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz16
&amp;nbsp;#V17&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz17
&amp;nbsp;#V18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz18
&amp;nbsp;#V19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz19
&amp;nbsp;#V20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz20
&amp;nbsp;#V21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz21
&amp;nbsp;#V22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz22
&amp;nbsp;#V23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz23
&amp;nbsp;#V24&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz24
&amp;nbsp;#V25&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz25
&amp;nbsp;#V26&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz26
&amp;nbsp;#V27&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz27
&amp;nbsp;#V28&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz28
&amp;nbsp;#V29&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz29
&amp;nbsp;#V30&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz30
&amp;nbsp;#V31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz31
&amp;nbsp;#V32&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz32
&amp;nbsp;#V33&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz33
&amp;nbsp;#V34&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz34
&amp;nbsp;#V35&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz35
&amp;nbsp;#V36&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz36
&amp;nbsp;#V37&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz37
&amp;nbsp;#V38&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz38
&amp;nbsp;#V39&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz39
&amp;nbsp;#V40&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz40
&amp;nbsp;#V41&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz41
&amp;nbsp;#V42&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz42
&amp;nbsp;#V43&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz43
&amp;nbsp;#V44&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz44
&amp;nbsp;#V45&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz45
&amp;nbsp;#V46&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz46
&amp;nbsp;#V47&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz47
&amp;nbsp;#V48&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz48
&amp;nbsp;#V49&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz49
&amp;nbsp;#V50&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz50
&amp;nbsp;#V51&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz51
&amp;nbsp;#V52&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz52
&amp;nbsp;#V53&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz53
&amp;nbsp;#V54&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz54
&amp;nbsp;#V55&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz55
&amp;nbsp;#V56&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz56
&amp;nbsp;#V57&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz57
&amp;nbsp;#V58&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz58
&amp;nbsp;#V59&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz59
&amp;nbsp;#V60&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz60
&amp;nbsp;#V61&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz61
&amp;nbsp;#V62&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz62
&amp;nbsp;#V63&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz63
&amp;nbsp;#V64&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz64
&amp;nbsp;#V65&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz65
&amp;nbsp;#V66&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz66
&amp;nbsp;#V67&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz67
&amp;nbsp;#V68&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz68
&amp;nbsp;#V69&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz69
&amp;nbsp;#V70&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz70
&amp;nbsp;#V71&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz71
&amp;nbsp;#V72&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz72
&amp;nbsp;#V73&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz73
&amp;nbsp;#V74&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz74
&amp;nbsp;#V75&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz75
&amp;nbsp;#V76&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz76
&amp;nbsp;#V77&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz77
&amp;nbsp;#V78&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz78
&amp;nbsp;#V79&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz79
&amp;nbsp;#V80&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz80
&amp;nbsp;#V81&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz81
&amp;nbsp;#V82&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz82
&amp;nbsp;#V83&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz83
&amp;nbsp;#V84&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz84
&amp;nbsp;#V85&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz85
&amp;nbsp;#V86&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz86
&amp;nbsp;#V87&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz87
&amp;nbsp;#V88&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz88
&amp;nbsp;#V89&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz89
&amp;nbsp;#V90&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz90
&amp;nbsp;#V91&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz91
&amp;nbsp;#V92&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz92
&amp;nbsp;#V93&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz93
&amp;nbsp;#V94&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz94
&amp;nbsp;#V95&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz95
&amp;nbsp;#V96&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz96
&amp;nbsp;#V97&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz97
&amp;nbsp;#V98&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz98
&amp;nbsp;#V99&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz99
&amp;nbsp;#V100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; xyz100
Press any key to continue . . .&lt;/PRE&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Wed, 25 Jul 2018 15:15:57 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160261#M142794</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2018-07-25T15:15:57Z</dc:date>
    </item>
    <item>
      <title>Jim, just for clarification,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160262#M142795</link>
      <description>&lt;P&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Jim, just for clarification, it was never a question of not working stuff. The code was intended as a sample to outline the memory leak in Fortran Composer 2018.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I&lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;'ve reported that it works perfect in old version 2016, but in Intel® Parallel Studio XE 2018 Update 3 Composer Edition for Fortran Windows it created a huge memory leak. Keep this stuff in mind:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:; class-name:dark;"&gt; Before alloc, heap 3640 KB
 After alloc, heap 4332 KB
 Data assignment done, heap 4692 KB
 Data move done, heap 477364 KB!!!
 Deallocate done, heap 476800 KB!!!
&lt;/PRE&gt;

&lt;P&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Yesterday I've got a strange feedback from Intel Support which I want to share here in the forum for all users too. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:; class-name:dark;"&gt;(1)  Regarding deallocation, according to the compiler developers, the physical deallocation of memory does not actually occur until the end of the program.&lt;/PRE&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;That answer is truly incredible. It's is a memory leak which occurs as soon as you assign data to an allocateabe character. No one who understands how memory management works (and certainly not a compiler developer) can claim that this is correct behavior!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;No idea how to proceed here further...&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jul 2018 06:09:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160262#M142795</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-26T06:09:29Z</dc:date>
    </item>
    <item>
      <title>One comment, one suggestion.</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160263#M142796</link>
      <description>&lt;P&gt;One comment, one suggestion.&lt;/P&gt;

&lt;P&gt;My&amp;nbsp;comment is that the "allocate" at line 17 in your original program does not get deallocated until the end of the program.&amp;nbsp; It's possible that that is what my colleague was reacting to.&lt;/P&gt;

&lt;P&gt;My&amp;nbsp;suggestion is to reply to your support contact, acknowledge that you understand that this allocation is not released, but that your concern goes beyond that one allocation, and could they kindly look at it again.&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --Lorri&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jul 2018 12:32:39 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160263#M142796</guid>
      <dc:creator>Lorri_M_Intel</dc:creator>
      <dc:date>2018-07-26T12:32:39Z</dc:date>
    </item>
    <item>
      <title>Thanks Lorri,</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160264#M142797</link>
      <description>&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Thanks Lorri,&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;This is not the problem. Even when deallocate is done, it needs 500MB of data. And deallocate is not applicable here at all. The scenarios is to work with a dynamic filled sorted data vector. There the data is moved to keep it on order. Then it is of course not possible to deallocate it, because you want to work with it.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I think you can look at it as you like, the summary is in my opinion the following: &lt;STRONG&gt;implementation of allocatable character in Intel Fortran 2018 is complete garbage. &lt;/STRONG&gt;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;BTW: in the full FTN project &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN style="display: inline !important; float: none; background-color: transparent; color: rgb(0, 0, 0); cursor: text; font-family: Calibri; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; line-height: 24px; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; word-wrap: break-word;"&gt;(see ZIP), &lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;which I've added, the deallocate stuff present too. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jul 2018 12:49:27 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160264#M142797</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-26T12:49:27Z</dc:date>
    </item>
    <item>
      <title>&gt;&gt;That answer is truly</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160265#M142798</link>
      <description>&lt;P&gt;&amp;gt;&amp;gt;&lt;EM&gt;That answer is truly incredible. It's is a memory leak which occurs as soon as you assign data to an allocateabe character. No one who understands how memory management works (and certainly not a compiler developer) can claim that this is correct behavior!&lt;/EM&gt;&lt;/P&gt;

&lt;P&gt;That may not entirely be a true on&amp;nbsp;your part. Let me explain (assumption on my part). When the OpenMP tasking statements were implemented in IVF, the IVF development team wanted fast task dispatching, which in turn require fast memory allocation/deallocation. To implement this, the development team borrowed the TBB parallel allocator. This allocator, provides for each thread to allocate from the common heap, a slab of memory, and if necessary additional slabs of memory. The allocation/deallocaton scheme aggregates similar sized chunks of the slab into separate pools. Thus permitting thread independent (for the most part) memory pools. The slabs are not returned until the process ends (or there may be an API to disband a pool).&lt;/P&gt;

&lt;P&gt;This activity blurs "how memory management works".&lt;/P&gt;

&lt;P&gt;Detecting a memory leak is a bit more complicated than testing the condition of the main heap.&lt;/P&gt;

&lt;P&gt;Note, the above does not preclude a memory leak.&lt;/P&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jul 2018 12:50:30 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160265#M142798</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2018-07-26T12:50:30Z</dc:date>
    </item>
    <item>
      <title>Maybe it's not a memory leek</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160266#M142799</link>
      <description>&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px; line-height: 107%; font-family: &amp;quot;Calibri&amp;quot;,sans-serif; font-size: 11pt;"&gt;&lt;FONT color="#000000"&gt;Maybe it's not a memory leak but if you can not control that stuff the allocateabe characters become useless. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Keep in mind the sample which I've shown. We have a vector with only 10000 items. There are data strings with only some few bytes in it. When you move it (only 2000 times for additional inserts), the program size changes from 4MB to 470MB:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:; class-name:dark;"&gt; Before alloc, heap 3640 KB
 After alloc, heap 4332 KB
 Data assignment done, heap 4692 KB
 Data move done, heap 477364 KB!!!
&lt;/PRE&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Now keep in mind that we have multiple of these data vectors. Then we need an incredible amount of memory because of optimization from intel compiler developers?! And the best thing here is that it worked fine in version 2016.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I'm happy if you can tell me that I'm doing some stuff wrong and that it must be implemented/used in a different way. But even the Intel Support was not able to provide here a useful approach to handle it. &lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&amp;nbsp;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jul 2018 13:03:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160266#M142799</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-26T13:03:00Z</dc:date>
    </item>
    <item>
      <title>This certainly seems like a</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160267#M142800</link>
      <description>&lt;P&gt;This certainly seems like a bug to me.&amp;nbsp; I am able to reproduce the heap growth with v18u3 (Windows) and it doesn't happen with v17u5.&lt;/P&gt;

&lt;P&gt;Even if pData(:) is changed to an allocatable, the problem persists.&lt;/P&gt;

&lt;P&gt;I suspect the intermediate temporary objects that are being used for the loop copying are not being released/deallocated correctly.&amp;nbsp; I guess there could be some other (new) magic related to the v18 memory manager that is causing the heap growth (that's not my area), but this one sounds like a duck.&lt;/P&gt;

&lt;P&gt;Definitely follow Lorri's guidance and ask them to take a second look at what you are demonstrating in your (very nice) reproducer.&lt;/P&gt;</description>
      <pubDate>Thu, 26 Jul 2018 22:29:59 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160267#M142800</guid>
      <dc:creator>CTOptimizer</dc:creator>
      <dc:date>2018-07-26T22:29:59Z</dc:date>
    </item>
    <item>
      <title>I've created an enhanced</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160268#M142801</link>
      <description>&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I've created an enhanced sample where the process heap memory is dumped automatically. This should simplify a little bit to check the memory demand. For this the Windows API function GetProcessMemoryInfo() is used to query the WorkingSetSize of the current process.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Current output on my computer with Windows 10 1803 and Intel® Parallel Studio XE 2018 Update 3 Composer Edition for Fortran Windows:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:; class-name:dark;"&gt;Before alloc, heap 3808 KB
After alloc, heap 4392 KB
Data assignment done, heap 4784 KB
Data move done, heap 632236 KB
Deallocate done, heap 631672 KB
&lt;/PRE&gt;</description>
      <pubDate>Fri, 27 Jul 2018 12:40:18 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160268#M142801</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-27T12:40:18Z</dc:date>
    </item>
    <item>
      <title>@Gottlinger, Michael:</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160269#M142802</link>
      <description>&lt;P&gt;@Gottlinger, Michael:&lt;/P&gt;

&lt;P&gt;I concur with yours and others' assessments in this thread (e.g., with Quote #14) there has been a &lt;STRONG&gt;regression&lt;/STRONG&gt; with Intel Fortran compiler 18.0 version compared to, say, version corresponding to Intel Parallel Studio 2016.&amp;nbsp; Hopefully you will feedback comments from this thread at your support incident at the Intel OSC and Intel support team will then work with Intel developers to address your problem,&lt;/P&gt;

&lt;P&gt;In the meantime, I will suggest a &lt;STRONG&gt;workaround &lt;/STRONG&gt;for you which is to go with defined assignment for your data structure(s) (derived type); as one's 'classes' get bigger and more and more complicated in terms of the data they encapsulate, such defined assignment may be an option to consider in your actual code(s), especially as they can provide control in terms of shallow copy vs deep copy, etc.&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;! -----------------------------------------------------------------------------
!
!  PROGRAM: TestFTN
!
!  PURPOSE:  Show a serious heap error problem in Intel Fortran Composer 2018.
!            Note, this stuff works fine in older versions.
!
!  AUTHOR:   Michael Göttlinger
!

! -----------------------------------------------------------------------------
module WinStuff
   use ISO_C_BINDING
   implicit none

contains

   !DEC$ IF DEFINED(_WIN32)
   ! Get heap memory of process
   function ChkMemory()
      use IFWINTY
      use KERNEL32
      use PSAPI
      implicit none

      integer         :: ChkMemory
      integer(DWORD)  :: processID
      integer(HANDLE) :: hProc
      integer(DWORD)  :: dwRet
      type(T_PROCESS_MEMORY_COUNTERS) :: pmc

      ChkMemory = 0

      processID = GetCurrentProcessId()
      hProc = OpenProcess (ior(PROCESS_QUERY_INFORMATION, PROCESS_VM_READ), FALSE, processID)
      if( hProc /= null ) then
         dwRet = GetProcessMemoryInfo( hProc, pmc, sizeof(pmc) )
         if( dwRet /= 0 ) then
            !write (*, '(2X,A,1X,I0)') &amp;amp;
               !  "PageFaultCount:", pmc%PageFaultCount, &amp;amp;
               !  "PeakWorkingSetSize:", pmc%PeakWorkingSetSize, &amp;amp;
               !  "WorkingSetSize:", pmc%WorkingSetSize, &amp;amp;
               !  "QuotaPeakPagedPoolUsage:", pmc%QuotaPeakPagedPoolUsage, &amp;amp;
               !  "QuotaPeakNonPagedPoolUsage:", pmc%QuotaPeakNonPagedPoolUsage, &amp;amp;
               !  "QuotaNonPagedPoolUsage:", pmc%QuotaNonPagedPoolUsage, &amp;amp;
               !  "PagefileUsage:", pmc%PagefileUsage, &amp;amp;
               !  "PeakPagefileUsage:", pmc%PeakPagefileUsage
            ChkMemory = pmc%WorkingSetSize / 1024
         end if
         dwRet = CloseHandle( hProc )
      end if
   end function ChkMemory
   !DEC$ ELSE
   ! Get heap memory of process
   function ChkMemory()
      implicit none
      integer :: ChkMemory
      ChkMemory = 0
   end function ChkMemory
   !DEC$ ENDIF
end module WinStuff

module m

   ! Small type with automatically allocatable character
   type :: TestData
      character(len=20)               :: UID = ' '      ! Name of global variable
      character(:) , allocatable      :: strVal         ! Value of variable dynamic string
      !character(len=80)               :: strVal         ! Value of variable constant string
      integer(2)                      :: Container = 0
   contains
      private
      procedure, pass(this) :: assign_t
      generic, public :: assignment(=) =&amp;gt; assign_t
   end type TestData

contains

   elemental subroutine assign_t( this, rhs )

      ! Argument list
      class(TestData), intent(inout) :: this
      type(TestData), intent(in)     :: rhs

      this%UID = rhs%UID
      if ( allocated(rhs%strVal) ) this%strVal = rhs%strVal
      this%Container = rhs%Container

   end subroutine assign_t

end module

! -----------------------------------------------------------------------------
program TestFTN

   use, intrinsic :: iso_fortran_env, only : compiler_version
   use m, only : TestData
   use WinStuff, only : ChkMemory
   
   implicit none

   ! Variables
   !type(TestData), allocatable :: pData(:)
   type(TestData), pointer     :: pData(:) =&amp;gt; null()
   type(TestData)              :: item
   integer                     :: i, n, nItems, nAdd
   character(len=20)           :: strNum

   print *, "Compiler Version: ", compiler_version()
   
   nItems = 10000
   nAdd = 2000

   99 format(A,', heap ',I0,' KB')

   ! Before alloc
   write(*, 99) 'Before alloc', ChkMemory()

   allocate( pData(nItems+nAdd) )

   ! After alloc
   write(*, 99) 'After alloc', ChkMemory()

   ! Assign data to the vector
   do n=1,nItems
      write(strNum,fmt='(I0)') n
      item % UID = '#V'//trim(strNum)
      item % strVal = 'xyz'//trim(strNum)
      pData(n) = item
   end do

   ! After assignment
   write(*, 99) 'Data assignment done', ChkMemory()

   ! Move of data in the vector, should simulate data shift in when sorted
   do n=1,nAdd-1
      write(strNum,fmt='(I0)') n
      item % UID = '#A'//trim(strNum)
      item % strVal = 'abc'//trim(strNum)
      ! Here the heap memory leak occurs, nothing helps to fix it: loop, dealloc, ...
      pData(n+1:nItems+n+1) = pData(n:nItems+n)
      !do i=n+nItems, n, -1
      !  if( allocated(pData(i+1) % strVal) ) deallocate( pData(i+1) % strVal )
      !  pData(i+1) = pData(i)
      !end do
      !if( allocated(pData(n) % strVal) ) deallocate( pData(n) % strVal )
      pData(n) = item
   end do

   ! After move
   write(*, 99) 'Data move done', ChkMemory()

   deallocate( pData )

   write(*, 99) 'Deallocate done', ChkMemory()

end program TestFTN
&lt;/PRE&gt;

&lt;P&gt;Upon execution,&lt;/P&gt;

&lt;PRE class="brush:plain; class-name:dark;"&gt; Compiler Version:
 Intel(R) Visual Fortran Intel(R) 64 Compiler for applications running on IA-32,

  Version 18.0.3.210 Build 20180410
Before alloc, heap 3156 KB
After alloc, heap 3732 KB
Data assignment done, heap 4164 KB
Data move done, heap 4264 KB
Deallocate done, heap 3440 KB

&lt;/PRE&gt;

&lt;P&gt;&amp;nbsp;&lt;/P&gt;

&lt;P&gt;Separately, take a look at this thread and note Fortran language standard has limitations when it comes to move semantics and therefore, if you need to 'move' large amounts of data within or across arrays such as with your statements&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;    pData(n+1:nItems+n+1) = pData(n:nItems+n) 
&lt;/PRE&gt;

&lt;P&gt;you need to consider the consequences in terms of memory requirements and ponder over&amp;nbsp; (code design) options to overcome issues:&lt;/P&gt;

&lt;P&gt;&lt;SPAN style="font-size: 13.008px;"&gt;&lt;A href="https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/701985" target="_blank"&gt;https://software.intel.com/en-us/forums/intel-visual-fortran-compiler-for-windows/topic/701985&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Fri, 27 Jul 2018 16:07:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160269#M142802</guid>
      <dc:creator>FortranFan</dc:creator>
      <dc:date>2018-07-27T16:07:00Z</dc:date>
    </item>
    <item>
      <title>@FortranFan</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160270#M142803</link>
      <description>&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;@FortranFan&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;Thank you for your feedback. This was exactly what I was looking for. The assignment implementation works fine, when move is done using a do loop (as you mentioned):&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;PRE class="brush:fortran;"&gt;  ! Move of data in the vector, should simulate data shift in when sorted
  do n=1,nAdd-1
    write(strNum,FMT='(I0)') n
    item % UID = '#A'//trim(strNum)
    item % strVal = 'abc'//trim(strNum)
    do i=n+nItems, n, -1
      pData(i+1) = pData(i)
    end do
    pData(n) = item
  end do
&lt;/PRE&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;I tried it before with a final implementation, but this one did not solve the problem. And also freeing data in the do loop did not work either. But your approach with assignment works well. Thanks again!&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;

&lt;P style="margin: 0px 0px 10.66px;"&gt;&lt;SPAN lang="EN-US" style="margin: 0px;"&gt;&lt;FONT color="#000000" face="Calibri" size="3"&gt;BTW: I've informed Intel Support about feedback in this forum and what I can see on their response they are watching this discussion too.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Sat, 28 Jul 2018 06:51:10 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160270#M142803</guid>
      <dc:creator>Göttinger__Michael</dc:creator>
      <dc:date>2018-07-28T06:51:10Z</dc:date>
    </item>
    <item>
      <title>FF, can you explain why in</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160271#M142804</link>
      <description>&lt;P&gt;FF, can you explain why in assign_t when rhs%strVal is not allocated, that you assure this%strVal is not allocated?&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;&amp;nbsp;&amp;nbsp; elemental subroutine assign_t( this, rhs )

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ! Argument list
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; class(TestData), intent(inout) :: this
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type(TestData), intent(in)&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :: rhs

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this%UID = rhs%UID
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ( allocated(rhs%strVal) ) then
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this%strVal = rhs%strVal
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if(allocated(this%strVal)) deallocate(this%strVal))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; endif
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this%Container = rhs%Container

&amp;nbsp;&amp;nbsp; end subroutine assign_t
&lt;/PRE&gt;

&lt;P&gt;Jim Dempsey&lt;/P&gt;</description>
      <pubDate>Mon, 30 Jul 2018 13:05:28 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160271#M142804</guid>
      <dc:creator>jimdempseyatthecove</dc:creator>
      <dc:date>2018-07-30T13:05:28Z</dc:date>
    </item>
    <item>
      <title>Jim raises an interesting</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160272#M142805</link>
      <description>&lt;P&gt;Jim raises an interesting question - I have a hunch as I think I ran into the same issue last year...&lt;/P&gt;

&lt;P&gt;A "normal" assignment between two allocatables (of intrinsic type) appears to be invalid if the RHS is not allocated.&amp;nbsp; What I think FF is trying to do here is resolve this &lt;S&gt;"defect"&lt;/S&gt; "asymmetry" in the Fortran standard in that, like a deep copy, if a RHS component is not allocated, then the LHS component should also be deallocated to match RHS.&amp;nbsp; This example below throws the following error:&lt;/P&gt;

&lt;P&gt;&lt;STRONG&gt;Attempt to fetch from allocatable variable A when it is not allocated&lt;/STRONG&gt;&lt;/P&gt;

&lt;PRE class="brush:fortran; class-name:dark;"&gt;    real, allocatable :: a(:), b(:)
    a = [1.0,2.0,3.0]
    b = a
    deallocate(a)
    b = a       ! Why doesn't this just deallocate b(:)?
&lt;/PRE&gt;

&lt;P&gt;Perhaps Steve can comment on why the last assignment above seems to be invalid Fortran, yet if 'a' or 'b' were allocatable components of a higher (derived) type, the deep copy would just match allocation status?&lt;/P&gt;</description>
      <pubDate>Tue, 31 Jul 2018 02:23:00 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160272#M142805</guid>
      <dc:creator>CTOptimizer</dc:creator>
      <dc:date>2018-07-31T02:23:00Z</dc:date>
    </item>
    <item>
      <title>It's invalid because in that</title>
      <link>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160273#M142806</link>
      <description>&lt;P&gt;It's invalid because in that last assignment, "a" is in an expression, which requires a value, and that in turn requires that the value be defined. Yes, an exception for this case could be carved out, but it hasn't.&lt;/P&gt;</description>
      <pubDate>Tue, 31 Jul 2018 13:08:29 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Fortran-Compiler/Allocatable-character-problem/m-p/1160273#M142806</guid>
      <dc:creator>Steve_Lionel</dc:creator>
      <dc:date>2018-07-31T13:08:29Z</dc:date>
    </item>
  </channel>
</rss>

