[petsc-dev] fortran literals

Munson, Todd tmunson at mcs.anl.gov
Wed Sep 7 15:10:14 CDT 2016


Did we come to a conclusion on this?  Is it worthwhile adding macros for C and 
Fortran literals to make sure they match the PetscScalar type along with the 
appropriate configure tests?

Todd.

> On Sep 3, 2016, at 3:18 PM, Lisandro Dalcin <dalcinl at gmail.com> wrote:
> 
> 
> On 2 September 2016 at 00:46, Scott Kruger <kruger at txcorp.com> wrote:
> Lisandro's description is the most natural way for a modern fortran programmer.
> 
> But for completeness, this is equivalent:
>    x=REAL(0.123456789123456789123456789,KIND=PETSC_REAL_KIND)
> 
> I think you are wrong. The literal gets demoted to single precision, so you loose digits.
> 
> $ cat tmp.f90
> program main
>   real(kind=8) x
>   x = REAL(0.123456789123456789123456789,KIND=8)
>   write (*,'(F18.16)') x
>   x = 0.123456789123456789123456789_8
>   write (*,'(F18.16)') x
> end program main
> 
> $ gfortran tmp.f90
> $ ./a.out 
> 0.1234567910432816
> 0.1234567891234568
> 
> 
> -- 
> Lisandro Dalcin
> ============
> Research Scientist
> Computer, Electrical and Mathematical Sciences & Engineering (CEMSE)
> Extreme Computing Research Center (ECRC)
> King Abdullah University of Science and Technology (KAUST)
> http://ecrc.kaust.edu.sa/
> 
> 4700 King Abdullah University of Science and Technology
> al-Khawarizmi Bldg (Bldg 1), Office # 0109
> Thuwal 23955-6900, Kingdom of Saudi Arabia
> http://www.kaust.edu.sa
> 
> Office Phone: +966 12 808-0459




More information about the petsc-dev mailing list