[petsc-users] flag -citations to PETSc

Åsmund Ervik asmund.ervik at ntnu.no
Wed Feb 12 03:21:18 CST 2014

Hash: SHA1

Hi again guys,

Our nightly Jenkins run revealed that PETSC_VERSION_GE does not work
well with ifort (version 14.0). (It works fine with gfortran and
pgf90.) ifort produces the error message

petscmod.F90(232): #error: #if: syntax error.

I couldn't figure out much from this error message, but the following
seems to work on all our compilers:

#if (PETSC_MAJOR >= 3) && (PETSC_MINOR >= 5)

Best regards,

On 06. feb. 2014 17:06, Jed Brown wrote:
> Åsmund Ervik <asmund.ervik at ntnu.no> writes:
>> Ok, so PETSC_DEFAULT_REAL works fine with master but not with
>> 3.4. What are my options if I want to keep this simple? I can
>> pretty much guarantee that my colleagues and the test server
>> won't all switch to 3.5 simultaneously. Is there a better fix
>> than hardcoding in the default values? KSPSetTolerances is the
>> only place where we use these.
> Historically, we have made a handful of interface changes in each
> PETSc release.  It's expensive to maintain complete source
> compatibility (in general; not in this case) due to internal
> refactoring of interfaces, the fact that people never update their
> code if not forced to, and user confusion attempting to mix old and
> new ways of doing things.
> In C with supported compilers, I have been using deprecated
> "attributes" to mark deprecated functions that are relatively easy
> to preserve. (More major change, such as splitting SNESLineSearch
> into its own object, can't easily be handled this way.)  Most users
> only have to change a few lines to upgrade to a new version.
> In this case, we could leave PETSC_DEFAULT_DOUBLE_PRECISION as an
> alias, though the misleading name may cause some confusion and
> since I don't know a general way to mark it deprecated in Fortran,
> people will continue to use it indefinitely.  The general approach
> you can always use is
> #if PETSC_VERSION_GE(3,5,0) ... PETSC_DEFAULT_REAL #else ...
> Unreleased versions of PETSc are +Infinity in the version
> comparison macros, so this works now and once petsc-3.5 is
> released.
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/


More information about the petsc-users mailing list