<div dir="ltr"><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;color:#444444">I find that the fortran program cannot add optimization flag (-O2 or -O3) if I use gfortran-4.7.2 or ifort to compile.</div>


<div class="gmail_default" style="font-family:trebuchet ms,sans-serif;color:#444444">When I change the compiler to gfortran-4.4, now the --with-debug=0 (adding -O3) works.</div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;color:#444444">


<br></div><div class="gmail_default" style="font-family:trebuchet ms,sans-serif;color:#444444">Thank you all.</div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">Best regards,<div>Longxiang Chen</div><div><br>

</div><div><br></div></div></div>
<br><br><div class="gmail_quote">On Fri, Jun 28, 2013 at 3:25 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<br>
  Run both debugged and optimized versions with valgrind: <a href="http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind" target="_blank">http://www.mcs.anl.gov/petsc/documentation/faq.html#valgrind</a><br>
<span><font color="#888888"><br>
   Barry<br>
</font></span><div><div><br>
On Jun 28, 2013, at 3:30 PM, Longxiang Chen <<a href="mailto:suifengls@gmail.com" target="_blank">suifengls@gmail.com</a>> wrote:<br>
<br>
> A is formed by three arrays IA[NZ], JA[NZ] and VA[NZ]<br>
> IA[i] is row index, JA[i] is column index and VA[i] is the value in (IA[i], JA[i]).<br>
><br>
> For intel compiler:<br>
> when I use --with-debugging=0, the VA[] is not correct. I don't know what kind of optimization it does.<br>
><br>
> A[0][0] = 1.000000e-25<br>
> A[0][1] = 0.000000e+00<br>
> A[0][2] = 0.000000e+00<br>
> A[1][0] = 0.000000e+00<br>
> A[1][1] = -3.479028e+02<br>
> A[1][2] = 0.000000e+00<br>
> A[2][0] = 0.000000e+00<br>
> A[2][1] = 0.000000e+00<br>
> A[2][2] = -3.479028e+02<br>
> A[3][3] = 1.000000e-25<br>
> ...<br>
><br>
> CORRECT:<br>
> A[0][0] = -2.961372e-07<br>
> A[0][1] = 1.160201e+02<br>
> A[0][2] = 2.744589e+02<br>
> A[1][0] = 0.000000e+00<br>
> A[1][1] = -3.479028e+02<br>
> A[1][2] = 0.000000e+00<br>
> A[2][0] = -8.332708e-08<br>
> A[2][1] = 0.000000e+00<br>
> A[2][2] = -3.479028e+02<br>
> A[3][3] = -3.027917e-07<br>
> ...<br>
><br>
> For gcc-4.7.2:<br>
> when I use --with-debugging=0, the fortran main function cannot read input data before it starts the LOOP, the ksp_solver() is called inside the loop.<br>
> ===><br>
>  ERRONEOUS DATA INITIALIZATION            STOP EXECUTION---------<br>
><br>
> Best regards,<br>
> Longxiang Chen<br>
><br>
> Do something everyday that gets you closer to being done.<br>
><br>
><br>
><br>
> On Thu, Jun 27, 2013 at 6:42 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
> On Jun 27, 2013, at 2:23 PM, Tabrez Ali <<a href="mailto:stali@geology.wisc.edu" target="_blank">stali@geology.wisc.edu</a>> wrote:<br>
><br>
> > Fortran can be tricky.<br>
> ><br>
> > Try to run the program in valgrind and/or recheck all your arguments. I once forgot MatAssemblyType in the call to MatAssembly and the code still ran fine on one machine but failed on other. It is better to test with at least 2-3 compilers (GNU, Solaris and Open64 Fortran/C compilers are all free on Linux).<br>



> ><br>
> > T<br>
><br>
>    You can also run both versions with -snes_monitor -ksp_monitor and see if they both start out the same way.<br>
><br>
>    Barry<br>
><br>
> ><br>
> ><br>
> > On 27.06.2013 14:52, Longxiang Chen wrote:<br>
> >> Dear all,<br>
> >><br>
> >> I use ksp_solver to solve Ax=b, where A is from an outer loop of PDE.<br>
> >> Under debug mode(default), it solves the problem in about 4000<br>
> >> iterations.<br>
> >> And the final answer is correct (comparing to another solver).<br>
> >><br>
> >> I use intel compiler.<br>
> >> The program is in Fortran (by mpif90), except the solver is in c (by<br>
> >> mpicc).<br>
> >><br>
> >> However, when I re-configure with --with-debugging=0 (the only<br>
> >> change),<br>
> >> the program terminates in about 30 iterations with the wrong final<br>
> >> solution.<br>
> >><br>
> >> Thank you.<br>
> >><br>
> >> Best regards,<br>
> >> Longxiang Chen<br>
> >><br>
> >> Do something everyday that gets you closer to being done.<br>
> ><br>
><br>
><br>
<br>
</div></div></blockquote></div><br></div></div>