<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Feb 7, 2017 at 6:09 AM, Lukas van de Wiel <span dir="ltr"><<a href="mailto:lukas.drinkt.thee@gmail.com" target="_blank">lukas.drinkt.thee@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Matt,<br>
<br>
thank you for your fast reply.<br>
<br>
I have tried this with the dev version.<br>
The structure of the include files is a lot more transparent, now! Thanks!<br>
<br>
However, PetscReal is still not defined.<br></blockquote><div><br></div><div>I think you need</div><div><br></div><div>  use petscsys</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I can use my old method to change the third to last line from petscsys.h block<br>
<br>
#if defined (PETSC_USE_REAL_SINGLE)<br>
#define PetscReal PetscFortranFloat<br>
#elif defined(PETSC_USE_REAL___<wbr>FLOAT128)<br>
#define PetscReal PetscFortranLongDouble<br>
#elif defined(PETSC_USE_REAL_DOUBLE)<br>
#define PetscReal PetscFortranDouble<br>
#endif<br>
<br>
to<br>
<br>
#if defined (PETSC_USE_REAL_SINGLE)<br>
#define PetscReal PetscFortranFloat<br>
#elif defined(PETSC_USE_REAL___<wbr>FLOAT128)<br>
#define PetscReal PetscFortranLongDouble<br>
#else<br>
#define PetscReal PetscFortranDouble<br>
#endif<br>
<br>
To make sure it PetscReal is defined as double, even wthen there is no<br>
PETSC_USE_REAL_[TYPE] defined, and similar for PetscScalar, but that<br>
is ugly. :-\<br>
<br>
Cheers<br>
Lukas<br>
<br>
On 2/7/17, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
> On Tue, Feb 7, 2017 at 5:12 AM, Lukas van de Wiel <<br>
> <a href="mailto:lukas.drinkt.thee@gmail.com">lukas.drinkt.thee@gmail.com</a>> wrote:<br>
><br>
>> Dear fellow PETSc users,<br>
>><br>
>> I have been using PETSc for several years now, but I notice that after<br>
>> every upgrade I have to make changes to include/finclude/petscsysdef.h<br>
>> to get my Fortran code to work with it (or, in 3.7.5<br>
>> include/petsc/finclude/<wbr>petscsysdef.h)<br>
>><br>
><br>
> We will definitely fix this. However, the entire Fortran interface has been<br>
> rewritten to make it simpler,<br>
> and allow using all the features os F90. Please see the bottom of<br>
> <a href="http://www.mcs.anl.gov/petsc/documentation/changes/dev.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>documentation/changes/dev.html</a><br>
><br>
> Would you be able to try out the master branch of PETSc development<br>
> (instructions here <a href="http://www.mcs.anl.gov/petsc/developers/index.html" rel="noreferrer" target="_blank">http://www.mcs.anl.gov/petsc/<wbr>developers/index.html</a>)?<br>
> This would let us know if the bug is still there.<br>
><br>
>   Thanks,<br>
><br>
>      Matt<br>
><br>
><br>
>> I have been running 3.4.2 for a few years, and PetscReal and<br>
>> PetscScalar were never defined, apparently because no<br>
>> PETSC_USE_REAL_[TYPE] was never defined.<br>
>><br>
>> In 3.7.5 I have the same problem, and it also affects<br>
>> PetscFortranComplex which also depends on PETSC_USE_REAL_[TYPE].<br>
>><br>
>> However, my configure.log nicely shows:<br>
>><br>
>> #ifndef PETSC_USE_REAL_DOUBLE<br>
>> #define PETSC_USE_REAL_DOUBLE 1<br>
>> #endif<br>
>><br>
>> It seems that changing petscsysdef.h is not the proper solution. Is<br>
>> there a more elegant way for me to fix this?<br>
>><br>
>> Thanks for your expertise,<br>
>> Lukas<br>
>><br>
><br>
><br>
<span class="HOEnZb"><font color="#888888">><br>
> --<br>
> What most experimenters take for granted before they begin their<br>
> experiments is infinitely more interesting than any results to which their<br>
> experiments lead.<br>
> -- Norbert Wiener<br>
><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>