<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1251">
<META content="IncrediMail 1.0" name=GENERATOR></HEAD>
<BODY style="BACKGROUND-POSITION: 0px 0px; FONT-SIZE: 12pt; MARGIN: 5px 10px 10px; FONT-FAMILY: Arial" bgColor=#ffffff background="" scroll=yes ORGYPOS="0">
<TABLE id=INCREDIMAINTABLE cellSpacing=0 cellPadding=2 width="100%" border=0>
<TBODY>
<TR>
<TD id=INCREDITEXTREGION style="FONT-SIZE: 12pt; CURSOR: auto; FONT-FAMILY: Arial" width="100%">
<DIV>Sorry, actual compiler version is 8.1 build 20040803 Z</DIV>
<DIV>To make it consistent with 7.1 I use -FR -fpstkchk -pc80 -mp options.</DIV>
<DIV>Optimization can be on or off. This does not affect that part of code.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Ilya</DIV>
<DIV>&nbsp;</DIV>
<DIV id=IncrediOriginalMessage><I>-------Original Message-------</I></DIV>
<DIV>&nbsp;</DIV>
<DIV id=receivestrings>
<DIV dir=ltr style="FONT-SIZE: 11pt" <i><B>From:</B></I> <A href="mailto:wien@zeus.theochem.tuwien.ac.at">wien@zeus.theochem.tuwien.ac.at</A></DIV>
<DIV dir=ltr style="FONT-SIZE: 11pt" <i><B>Date:</B></I> 10/08/04 06:54:04</DIV>
<DIV dir=ltr style="FONT-SIZE: 11pt" <i><B>To:</B></I> <A href="mailto:wien@zeus.theochem.tuwien.ac.at">wien@zeus.theochem.tuwien.ac.at</A></DIV>
<DIV dir=ltr style="FONT-SIZE: 11pt" <i><B>Subject:</B></I> Re: [Wien] memory managment and ifc 8.0</DIV></DIV>
<DIV>&nbsp;</DIV>
<DIV>Perhaps the simplest patch -- try ifc 8.1. The Intel documentation says of</DIV>
<DIV>8.1 "The primary focus of this release is improvement in compiler</DIV>
<DIV>stability and run-time performance". Version 8.1 is more conservative</DIV>
<DIV>about some of the optimizations, and I read Intel's statement as meaning</DIV>
<DIV>that they've backed off on some overaggressive (buggy) optimizations in</DIV>
<DIV>8.0.</DIV>
<DIV>&nbsp;</DIV>
<DIV>On Thu, 7 Oct 2004, Ilya Elfimov wrote:</DIV>
<DIV>&nbsp;</DIV>
<DIV>&gt; Dear Wien developers and users,</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Did anybody test the code compiled with intel fortran compiler 8.0 on large</DIV>
<DIV>&gt; unit cells?</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; By large I mean unit cells which do not fit into default parameters. For</DIV>
<DIV>&gt; example, in</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; my test calculation of Cu 111 surface I need KMAX3START to be large than</DIV>
<DIV>&gt; ~170 and</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; default value is 50. Of course one can simply change it and recompile the</DIV>
<DIV>&gt; whole program</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; but this is not interesting. What interesting is that lapw1 will crash in</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; doreallocate_warp_c16_d2x3 when it is called from setwarts. This is a line</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; where it happens</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; hilfsfeld(-n1a:n1a,-n2a:n2a,-n3a:n3a)=tf(-n1a:n1a,-n2a:n2a,-n3a:n3a)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Note that this is ifc 8.0 specific behavior. In 7.1 everything is fine.</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Okay, here is my question. Although I like the idea but is this a legal use</DIV>
<DIV>&gt; of pointers in fortran?</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Probably I miss something but hilfsfeld isn't a globally defined pointer</DIV>
<DIV>&gt; (like one could have in C)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; and therefore the result might depend on how compiler interpret this code.</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; actually, I mean the whole memory manager. Does anyone know an option which</DIV>
<DIV>&gt; would</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; make 8.0 to understand this part of code properly?</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; If not, does any one have any good idea how to solve this? A quick tweak,</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; which works, is something like this</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; subroutine doreallocate_warp_c16_d2x3(tf, n1a, n1b, n2a, n2b, n3a,</DIV>
<DIV>&gt; n3b)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; implicit none</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; complex*16, allocatable, target&nbsp;&nbsp;:: tmp(:,:,:)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; complex*16, pointer :: tf(:,:,:),ptmp(:,:,:)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer ndim</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; integer min1, n1a, n1b, n2a, n2b, n3a, n3b</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ndim=(2*n1a+1)*(2*n2a+1)*(2*n3a+1)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allocate(tmp(-n1a:n1a,-n2a:n2a,-n3a:n3a))</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call zcopy(ndim,tf,1,tmp,1)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deallocate(tf)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; allocate(tf(-n1b:n1b,-n2b:n2b,-n3b:n3b))</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; tf(-n1b:n1b, -n2b:n2b, -n3b:n3b)=(0.0D0,0.0D0)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ptmp=&gt;tf(-n1a:n1a,-n2a:n2a,-n3a:n3a)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; call zcopy(ndim,tmp,1,ptmp,1)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; deallocate(tmp)</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end subroutine</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; but it requires double copying and therefore inefficient.</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Thanks,</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; Ilya</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt;</DIV>
<DIV>&gt; _______________________________________________</DIV>
<DIV>&gt; Wien mailing list</DIV>
<DIV>&gt; <A href="mailto:Wien@zeus.theochem.tuwien.ac.at">Wien@zeus.theochem.tuwien.ac.at</A></DIV>
<DIV>&gt; <A href="http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien">http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien</A></DIV>
<DIV>&gt;</DIV>
<DIV>&nbsp;</DIV>
<DIV>-----------------------------------------------</DIV>
<DIV>Laurence Marks</DIV>
<DIV>Department of Materials Science and Engineering</DIV>
<DIV>MSE Rm 2036 Cook Hall</DIV>
<DIV>2225 N Campus Drive</DIV>
<DIV>Northwestern University</DIV>
<DIV>Evanston, IL 60201, USA</DIV>
<DIV>Tel: (847) 491-3996 Fax: (847) 491-7820</DIV>
<DIV><A href="mailto:L-marks@northwestern.edu">mailto:L-marks@northwestern.edu</A></DIV>
<DIV><A href="http://www.numis.northwestern.edu">http://www.numis.northwestern.edu</A></DIV>
<DIV>-----------------------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>_______________________________________________</DIV>
<DIV>Wien mailing list</DIV>
<DIV><A href="mailto:Wien@zeus.theochem.tuwien.ac.at">Wien@zeus.theochem.tuwien.ac.at</A></DIV>
<DIV><A href="http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien">http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien</A></DIV></TD></TR>
<TR>
<TD id=INCREDIFOOTER width="100%">
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD width="100%"></TD>
<TD id=INCREDISOUND vAlign=bottom align=middle></TD>
<TD id=INCREDIANIM vAlign=bottom align=middle></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>