<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> </DIV>
<DIV>Ilya</DIV>
<DIV> </DIV>
<DIV id=IncrediOriginalMessage><I>-------Original Message-------</I></DIV>
<DIV> </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> </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> </DIV>
<DIV>On Thu, 7 Oct 2004, Ilya Elfimov wrote:</DIV>
<DIV> </DIV>
<DIV>> Dear Wien developers and users,</DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>> Did anybody test the code compiled with intel fortran compiler 8.0 on large</DIV>
<DIV>> unit cells?</DIV>
<DIV>></DIV>
<DIV>> By large I mean unit cells which do not fit into default parameters. For</DIV>
<DIV>> example, in</DIV>
<DIV>></DIV>
<DIV>> my test calculation of Cu 111 surface I need KMAX3START to be large than</DIV>
<DIV>> ~170 and</DIV>
<DIV>></DIV>
<DIV>> default value is 50. Of course one can simply change it and recompile the</DIV>
<DIV>> whole program</DIV>
<DIV>></DIV>
<DIV>> but this is not interesting. What interesting is that lapw1 will crash in</DIV>
<DIV>></DIV>
<DIV>> doreallocate_warp_c16_d2x3 when it is called from setwarts. This is a line</DIV>
<DIV>></DIV>
<DIV>> where it happens</DIV>
<DIV>></DIV>
<DIV>> hilfsfeld(-n1a:n1a,-n2a:n2a,-n3a:n3a)=tf(-n1a:n1a,-n2a:n2a,-n3a:n3a)</DIV>
<DIV>></DIV>
<DIV>> Note that this is ifc 8.0 specific behavior. In 7.1 everything is fine.</DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>> Okay, here is my question. Although I like the idea but is this a legal use</DIV>
<DIV>> of pointers in fortran?</DIV>
<DIV>></DIV>
<DIV>> Probably I miss something but hilfsfeld isn't a globally defined pointer</DIV>
<DIV>> (like one could have in C)</DIV>
<DIV>></DIV>
<DIV>> and therefore the result might depend on how compiler interpret this code.</DIV>
<DIV>></DIV>
<DIV>> actually, I mean the whole memory manager. Does anyone know an option which</DIV>
<DIV>> would</DIV>
<DIV>></DIV>
<DIV>> make 8.0 to understand this part of code properly?</DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>> If not, does any one have any good idea how to solve this? A quick tweak,</DIV>
<DIV>></DIV>
<DIV>> which works, is something like this</DIV>
<DIV>></DIV>
<DIV>> subroutine doreallocate_warp_c16_d2x3(tf, n1a, n1b, n2a, n2b, n3a,</DIV>
<DIV>> n3b)</DIV>
<DIV>></DIV>
<DIV>> implicit none</DIV>
<DIV>></DIV>
<DIV>> complex*16, allocatable, target :: tmp(:,:,:)</DIV>
<DIV>></DIV>
<DIV>> complex*16, pointer :: tf(:,:,:),ptmp(:,:,:)</DIV>
<DIV>></DIV>
<DIV>> integer ndim</DIV>
<DIV>></DIV>
<DIV>> integer min1, n1a, n1b, n2a, n2b, n3a, n3b</DIV>
<DIV>></DIV>
<DIV>> ndim=(2*n1a+1)*(2*n2a+1)*(2*n3a+1)</DIV>
<DIV>></DIV>
<DIV>> allocate(tmp(-n1a:n1a,-n2a:n2a,-n3a:n3a))</DIV>
<DIV>></DIV>
<DIV>> call zcopy(ndim,tf,1,tmp,1)</DIV>
<DIV>></DIV>
<DIV>> deallocate(tf)</DIV>
<DIV>></DIV>
<DIV>> allocate(tf(-n1b:n1b,-n2b:n2b,-n3b:n3b))</DIV>
<DIV>></DIV>
<DIV>> tf(-n1b:n1b, -n2b:n2b, -n3b:n3b)=(0.0D0,0.0D0)</DIV>
<DIV>></DIV>
<DIV>> ptmp=>tf(-n1a:n1a,-n2a:n2a,-n3a:n3a)</DIV>
<DIV>></DIV>
<DIV>> call zcopy(ndim,tmp,1,ptmp,1)</DIV>
<DIV>></DIV>
<DIV>> deallocate(tmp)</DIV>
<DIV>></DIV>
<DIV>> end subroutine</DIV>
<DIV>></DIV>
<DIV>> but it requires double copying and therefore inefficient.</DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>> Thanks,</DIV>
<DIV>></DIV>
<DIV>> Ilya</DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></DIV>
<DIV>></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>
<DIV>></DIV>
<DIV> </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> </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>