Rocksolid Light

Welcome to RetroBBS

mail  files  register  newsreader  groups  login

Message-ID:  

An optimist believes we live in the best world possible; a pessimist fears this is true.


devel / comp.lang.fortran / Re: Standardize real*8 as real(kind=real64)?

SubjectAuthor
* Standardize real*8 as real(kind=real64)?Beliavsky
+* Re: Standardize real*8 as real(kind=real64)?Beliavsky
|+* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
||`- Re: Standardize real*8 as real(kind=real64)?pehache
|+* Re: Standardize real*8 as real(kind=real64)?gah4
||`* Re: Standardize real*8 as real(kind=real64)?Beliavsky
|| `* Re: Standardize real*8 as real(kind=real64)?gah4
||  `- Re: Standardize real*8 as real(kind=real64)?Dick Hendrickson
|`- Re: Standardize real*8 as real(kind=real64)?John Collins
+- Re: Standardize real*8 as real(kind=real64)?FortranFan
+* Re: Standardize real*8 as real(kind=real64)?gah4
|+- Re: Standardize real*8 as real(kind=real64)?John Collins
|`* Re: Standardize real*8 as real(kind=real64)?Thomas Koenig
| `* Re: Standardize real*8 as real(kind=real64)?gah4
|  +* Re: Standardize real*8 as real(kind=real64)?Thomas Koenig
|  |`- Re: Standardize real*8 as real(kind=real64)?gah4
|  `- Re: Standardize real*8 as real(kind=real64)?Ron Shepard
+* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
|+- Re: Standardize real*8 as real(kind=real64)?Robin Vowels
|`* Re: Standardize real*8 as real(kind=real64)?pehache
| +* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| |`* Re: Standardize real*8 as real(kind=real64)?pehache
| | `* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| |  `- Re: Standardize real*8 as real(kind=real64)?pehache
| +* Re: Standardize real*8 as real(kind=real64)?pehache
| |`* Re: Standardize real*8 as real(kind=real64)?pehache
| | `* Re: Standardize real*8 as real(kind=real64)?Phillip Helbig (undress to reply
| |  +* Re: Standardize real*8 as real(kind=real64)?gah4
| |  |+* Re: Standardize real*8 as real(kind=real64)?jfh
| |  ||`* Re: Standardize real*8 as real(kind=real64)?FortranFan
| |  || `- Re: Standardize real*8 as real(kind=real64)?jfh
| |  |`- Re: Standardize real*8 as real(kind=real64)?Phillip Helbig (undress to reply
| |  `* Re: Standardize real*8 as real(kind=real64)?pehache
| |   `- Re: Standardize real*8 as real(kind=real64)?Phillip Helbig (undress to reply
| `* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
|  `* Re: Standardize real*8 as real(kind=real64)?pehache
|   `* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
|    +* Re: Standardize real*8 as real(kind=real64)?pehache
|    |`* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
|    | `* Re: Standardize real*8 as real(kind=real64)?pehache
|    |  +* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
|    |  |`- Re: Standardize real*8 as real(kind=real64)?pehache
|    |  `- Re: Standardize real*8 as real(kind=real64)?gah4
|    +* Re: Standardize real*8 as real(kind=real64)?gah4
|    |`- Re: Standardize real*8 as real(kind=real64)?Ron Shepard
|    `* Re: Standardize real*8 as real(kind=real64)?Quadibloc
|     `- Re: Standardize real*8 as real(kind=real64)?gah4
+* Re: Standardize real*8 as real(kind=real64)?John Collins
|+* Re: Standardize real*8 as real(kind=real64)?FortranFan
||`- Re: Standardize real*8 as real(kind=real64)?Robin Vowels
|`- Re: Standardize real*8 as real(kind=real64)?Robin Vowels
+* Re: Standardize real*8 as real(kind=real64)?JCampbell
|+* Re: Standardize real*8 as real(kind=real64)?Thomas Koenig
||+* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
|||`- Re: Standardize real*8 as real(kind=real64)?Robin Vowels
||`* Re: Standardize real*8 as real(kind=real64)?jfh
|| `* Re: Standardize real*8 as real(kind=real64)?JCampbell
||  `* Re: Standardize real*8 as real(kind=real64)?steve kargl
||   `* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
||    `* Re: Standardize real*8 as real(kind=real64)?steve kargl
||     `- Re: Standardize real*8 as real(kind=real64)?Quadibloc
|`* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| +* Re: Standardize real*8 as real(kind=real64)?John Collins
| |+* Re: Standardize real*8 as real(kind=real64)?gah4
| ||`* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
| || `* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| ||  `* Re: Standardize real*8 as real(kind=real64)?John Collins
| ||   +- Re: Standardize real*8 as real(kind=real64)?gah4
| ||   +* Re: Standardize real*8 as real(kind=real64)?FortranFan
| ||   |+- Re: Standardize real*8 as real(kind=real64)?gah4
| ||   |`* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| ||   | `- Re: Standardize real*8 as real(kind=real64)?FortranFan
| ||   +- Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| ||   `* Re: Standardize real*8 as real(kind=real64)?Quadibloc
| ||    `- Re: Standardize real*8 as real(kind=real64)?jfh
| |+* Re: Standardize real*8 as real(kind=real64)?steve kargl
| ||+* Re: Standardize real*8 as real(kind=real64)?Phillip Helbig (undress to reply
| |||`- Re: Standardize real*8 as real(kind=real64)?Ron Shepard
| ||+- Re: Standardize real*8 as real(kind=real64)?gah4
| ||+* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| |||`* Re: Standardize real*8 as real(kind=real64)?gah4
| ||| +- Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| ||| `* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
| |||  +- Re: Standardize real*8 as real(kind=real64)?gah4
| |||  `* Re: Standardize real*8 as real(kind=real64)?pehache
| |||   +* Re: Standardize real*8 as real(kind=real64)?gah4
| |||   |`- Re: Standardize real*8 as real(kind=real64)?Ron Shepard
| |||   `* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| |||    +* Re: Standardize real*8 as real(kind=real64)?pehache
| |||    |`* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| |||    | `* Re: Standardize real*8 as real(kind=real64)?pehache
| |||    |  `* Re: Standardize real*8 as real(kind=real64)?Ron Shepard
| |||    |   +* Re: Standardize real*8 as real(kind=real64)?pehache
| |||    |   |`- Re: Standardize real*8 as real(kind=real64)?Quadibloc
| |||    |   `- Re: Standardize real*8 as real(kind=real64)?Thomas Koenig
| |||    `- Re: Standardize real*8 as real(kind=real64)?Ron Shepard
| ||`* Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| || `- Re: Standardize real*8 as real(kind=real64)?steve kargl
| |`- Re: Standardize real*8 as real(kind=real64)?Robin Vowels
| `* Re: Standardize real*8 as real(kind=real64)?Quadibloc
|  `- Re: Standardize real*8 as real(kind=real64)?Thomas Koenig
+* Re: Standardize real*8 as real(kind=real64)?pehache
`* Re: Standardize real*8 as real(kind=real64)?gah4

Pages:12345
Re: Standardize real*8 as real(kind=real64)?

<b0a27287-14c4-4711-810a-17c9ee6f2647n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2423&group=comp.lang.fortran#2423

  copy link   Newsgroups: comp.lang.fortran
X-Received: by 2002:a05:600c:3b04:b0:39c:951e:6813 with SMTP id m4-20020a05600c3b0400b0039c951e6813mr17790883wms.193.1655614415468;
Sat, 18 Jun 2022 21:53:35 -0700 (PDT)
X-Received: by 2002:a81:69c6:0:b0:317:9030:711c with SMTP id
e189-20020a8169c6000000b003179030711cmr9101235ywc.5.1655614414819; Sat, 18
Jun 2022 21:53:34 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.128.87.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.fortran
Date: Sat, 18 Jun 2022 21:53:34 -0700 (PDT)
In-Reply-To: <59622490-8dab-41c0-b5d9-7c8d40f0f4b3n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=115.189.80.216; posting-account=KnYfEgoAAAD1tUJTvdAUZ3XojNa5tezZ
NNTP-Posting-Host: 115.189.80.216
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<jh6nt3Fdm3mU1@mid.individual.net> <jh6ntuFdm3mU2@mid.individual.net>
<t8la0v$1dj1$1@gioia.aioe.org> <88433631-0744-4418-b371-90bd0a4b463bn@googlegroups.com>
<f96283d1-63ff-45d4-88d5-80b08f2d2b67n@googlegroups.com> <59622490-8dab-41c0-b5d9-7c8d40f0f4b3n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b0a27287-14c4-4711-810a-17c9ee6f2647n@googlegroups.com>
Subject: Re: Standardize real*8 as real(kind=real64)?
From: harperjf2@gmail.com (jfh)
Injection-Date: Sun, 19 Jun 2022 04:53:35 +0000
Content-Type: text/plain; charset="UTF-8"
 by: jfh - Sun, 19 Jun 2022 04:53 UTC

On Sunday, June 19, 2022 at 11:27:51 AM UTC+12, FortranFan wrote:
> On Saturday, June 18, 2022 at 5:05:54 PM UTC-4, jfh wrote:
>
> > .. I sometimes use selected_real(kind(prec)) where prec is any of 6,15,18,33 ..
>
> You meant selected_real_kind(prec)?
Yes. Sorry. I usually check anything I say in Fortran by compiling it but I was in a hurry this morning.

Re: Standardize real*8 as real(kind=real64)?

<t8memu$3b5$1@gioia.aioe.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2424&group=comp.lang.fortran#2424

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!aioe.org!/2amXF1E4u0SqMi0yru5/Q.user.46.165.242.75.POSTED!not-for-mail
From: helbig@asclothestro.multivax.de (Phillip Helbig (undress to reply)
Newsgroups: comp.lang.fortran
Subject: Re: Standardize real*8 as real(kind=real64)?
Date: Sun, 19 Jun 2022 06:11:42 -0000 (UTC)
Organization: Multivax C&R
Message-ID: <t8memu$3b5$1@gioia.aioe.org>
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com> <1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net> <jh6nt3Fdm3mU1@mid.individual.net> <jh6ntuFdm3mU2@mid.individual.net> <t8la0v$1dj1$1@gioia.aioe.org> <88433631-0744-4418-b371-90bd0a4b463bn@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="3429"; posting-host="/2amXF1E4u0SqMi0yru5/Q.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
 by: Phillip Helbig (undr - Sun, 19 Jun 2022 06:11 UTC

In article <88433631-0744-4418-b371-90bd0a4b463bn@googlegroups.com>,
gah4 <gah4@u.washington.edu> writes:

> On Saturday, June 18, 2022 at 12:45:40 PM UTC-7, Phillip Helbig (undress to reply) wrote:
> > > >> integer, parameter :: sp = kind(1.0)
> > > >> integer, parameter :: dp = kind(1.0d0)
>
> > In such cases, why not just write REAL and DOUBLE PRECISION? The
> > results will be exactly the same.
>
> > If you are going to use KIND, then don't call it something like sp or dp
> > which is confusing if you change the definition (sort of the point of
> > KIND); if you won't ever change it, just use REAL and DOUBLE PRECISION:
> > completely clear, completely standard.
>
> Well, some then define wp, working precision, which is either sp or dp.
> So you only have to change one place.

That is different, and makes sense.

> One trick from the card days was a C in column 80. You then reverse
> the card, and to end, so the C is in column 1. Just for the ones
> you don't want to use.

Hadn't heard of that one. (But I started after punched cards. I know
someone only 7 years older, though, he used them extensively.)

Re: Standardize real*8 as real(kind=real64)?

<jh8mctFn6e2U1@mid.individual.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2428&group=comp.lang.fortran#2428

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!news.szaf.org!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: pehache.7@gmail.com (pehache)
Newsgroups: comp.lang.fortran
Subject: Re: Standardize real*8 as real(kind=real64)?
Date: Sun, 19 Jun 2022 15:24:45 +0200
Lines: 14
Message-ID: <jh8mctFn6e2U1@mid.individual.net>
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<jh6nt3Fdm3mU1@mid.individual.net> <jh6ntuFdm3mU2@mid.individual.net>
<t8la0v$1dj1$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: individual.net yClu/TnxbtGmC/jdnG/qhwAwODmmyB/DJTG6zp7B24YA4I2G27
Cancel-Lock: sha1:+Jh0kP/g9YVmq0b+dg1kJ8rt+P8=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Content-Language: fr
In-Reply-To: <t8la0v$1dj1$1@gioia.aioe.org>
 by: pehache - Sun, 19 Jun 2022 13:24 UTC

Le 18/06/2022 à 21:45, Phillip Helbig (undress to reply) a écrit :
>>>> integer, parameter :: sp = kind(1.0)
>>>> integer, parameter :: dp = kind(1.0d0)
>
> In such cases, why not just write REAL and DOUBLE PRECISION?

Just to simplify the two lines that come ater and that you have cut ;)

--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
ST passe le mur du çon : <j3nn2hFmqj7U1@mid.individual.net>

Re: Standardize real*8 as real(kind=real64)?

<13HrK.139598$X_i.137927@fx18.iad>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2432&group=comp.lang.fortran#2432

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx18.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Subject: Re: Standardize real*8 as real(kind=real64)?
Content-Language: en-US
Newsgroups: comp.lang.fortran
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<f520ba36-83fe-4ba1-a444-64c82a92559cn@googlegroups.com>
<392becf1-044b-4800-b85c-1d744e91a55cn@googlegroups.com>
<07c52bfd-9b23-4672-adf4-ba24cad094b5n@googlegroups.com>
<t34lac$utb$1@dont-email.me>
<f112d480-3ecf-4d92-84e0-56176111738dn@googlegroups.com>
<ee6e22a7-f32c-4177-9edb-14c032b9ea05n@googlegroups.com>
<BJB5K.428392$t2Bb.353109@fx98.iad> <jh4bvjFu004U1@mid.individual.net>
<9c0855b6-9790-4d89-96ea-4e92104e94e4n@googlegroups.com>
From: nospam@nowhere.org (Ron Shepard)
In-Reply-To: <9c0855b6-9790-4d89-96ea-4e92104e94e4n@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 30
Message-ID: <13HrK.139598$X_i.137927@fx18.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 19 Jun 2022 10:14:04 -0500
X-Received-Bytes: 2911
 by: Ron Shepard - Sun, 19 Jun 2022 15:14 UTC

On 6/17/22 5:35 PM, gah4 wrote:
[...]
> It seems, though, that REAL(8) is now very popular, and even taught in
> some scientific computing courses. However, KIND values are not
> standardized at all, and so that is less reasonable than REAL*8.

I think the real problem now with REAL(8) usage is how compiler
documentation is written. Take gfortran, as one of many examples. If you
look up any intrinsic function involving real kinds, it will use literal
(4) and (8). This is both more concise than the longer (kind(1.0))) and
(kind(1.0D0)), or (real32) and (real64), but it also documents the kind
mapping that gfortran uses. Also, if (real32) etc. were used in the
documentation, than the accompanying line with USE ISO_FORTRAN_ENV would
need to be added throughout. Otherwise, the example code would not work
when a beginner types in the code.

So when a beginner looks up the details of some feature in the
documentation, and that documentation uses hardwired KIND literals, he
is going to follow that example exactly as written. Then once he has
invested effort in writing a few thousand lines of code with literal
kind values, he isn't going to want to go back and fix them, he is
instead going to ask the standard committee to change the language to
agree with his code.

I don't know the answer to this dilemma. I don't think the fortran
documentation needs to be changed, but beginners somehow need to know
not to write code that way. It is at least an awkward situation when
learning or teaching the language.

$.02 -Ron Shepard

Re: Standardize real*8 as real(kind=real64)?

<leHrK.302420$zgr9.192285@fx13.iad>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2433&group=comp.lang.fortran#2433

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx13.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Subject: Re: Standardize real*8 as real(kind=real64)?
Content-Language: en-US
Newsgroups: comp.lang.fortran
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<f520ba36-83fe-4ba1-a444-64c82a92559cn@googlegroups.com>
<392becf1-044b-4800-b85c-1d744e91a55cn@googlegroups.com>
<07c52bfd-9b23-4672-adf4-ba24cad094b5n@googlegroups.com>
<t34lac$utb$1@dont-email.me>
<f112d480-3ecf-4d92-84e0-56176111738dn@googlegroups.com>
<ee6e22a7-f32c-4177-9edb-14c032b9ea05n@googlegroups.com>
<BJB5K.428392$t2Bb.353109@fx98.iad> <jh4bvjFu004U1@mid.individual.net>
<881886a1-5d05-46c3-806d-cba5be43566cn@googlegroups.com>
From: nospam@nowhere.org (Ron Shepard)
In-Reply-To: <881886a1-5d05-46c3-806d-cba5be43566cn@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 48
Message-ID: <leHrK.302420$zgr9.192285@fx13.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 19 Jun 2022 10:26:09 -0500
X-Received-Bytes: 3598
 by: Ron Shepard - Sun, 19 Jun 2022 15:26 UTC

On 6/17/22 9:10 PM, Robin Vowels wrote:
> On Saturday, June 18, 2022 at 8:02:31 AM UTC+10, pehache wrote:
>> Le 13/04/2022 à 17:10, Ron Shepard a écrit :
>>> On 4/13/22 2:44 AM, gah4 wrote:
>>>> On Tuesday, April 12, 2022 at 11:06:52 PM UTC-7, Robin Vowels wrote:
>>>>
>>>> (snip)
>>>>
>>>>> How many machines are using that offer only 64 bit reals?
>>>>
>>>> Cray-1, Cray-1A, Cray-1S, Cray-1M, Cray-X-MP, Cray-Y-MP, Cray-2
>>>> Cray-C90 Cray-EL90.
>>>
>>> I'm not sure exactly what this discussion is about, but fortran
>>> compilers on those computers also supported 128-bit reals. Double
>>> precision on those machines was slow, but it was there if you absolutely
>>> needed it.
>>>
>>> However, the FPS series of machines, which were also popular in the
>>> 1980s, did not support 128-bit arithmetic at all. They only supported
>>> 64-bit single precision floating point.
>>>
>>>> How many of each did they make, so we can add them all up?
>>>
>>> These were not personal computers, so the measure is not how many of the
>>> computers were made, but rather how many programmers and users had
>>> access to them. In my field of computational chemistry, that would be
>>> essentially every active programmer. In the 1980s, one could gain access
>>> in a variety of ways, through government agencies like NSF, NIH, DoD, or
>>> DOE, through state computer access programs, through universities, or
>>> through private employers. Those machines cast a huge shadow in their time.
>> Yep. And REAL*8 was by far the simplest way to have code running
>> efficiently on both these supercomputers and the unix workstations, when
>> ~64bits precision was needed
> .
> DOUBLE PRECISION was clear and unequivocal (and STANDARD).

No, it was just standard. It was neither clear nor unequivocal, as
explained above, or portable in a practical sense. Ironically, REAL*8
was more portable, yet nonstandard, which is why it was so popular at
the time and why so much legacy code was written that way.

Now modern fortran has a much superior mechanism for specifying
precision that is portable, standard conforming, and open ended for
future precisions. Yet some people want to continue using the old
approaches.

$.02 -Ron Shepard

Re: Standardize real*8 as real(kind=real64)?

<svHrK.3615$El2.3447@fx45.iad>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2434&group=comp.lang.fortran#2434

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!feeder.usenetexpress.com!tr2.eu1.usenetexpress.com!feeder1.feed.usenet.farm!feed.usenet.farm!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx45.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0) Gecko/20100101 Thunderbird/91.10.0
Subject: Re: Standardize real*8 as real(kind=real64)?
Content-Language: en-US
Newsgroups: comp.lang.fortran
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com> <f520ba36-83fe-4ba1-a444-64c82a92559cn@googlegroups.com> <392becf1-044b-4800-b85c-1d744e91a55cn@googlegroups.com> <07c52bfd-9b23-4672-adf4-ba24cad094b5n@googlegroups.com> <t34lac$utb$1@dont-email.me> <f112d480-3ecf-4d92-84e0-56176111738dn@googlegroups.com> <ee6e22a7-f32c-4177-9edb-14c032b9ea05n@googlegroups.com> <BJB5K.428392$t2Bb.353109@fx98.iad> <jh4bvjFu004U1@mid.individual.net> <881886a1-5d05-46c3-806d-cba5be43566cn@googlegroups.com> <jh566rF38puU1@mid.individual.net> <6f328b30-4e4a-4e2a-bdf2-cadc159d9895n@googlegroups.com> <jh6clvFbu3vU1@mid.individual.net>
From: nospam@nowhere.org (Ron Shepard)
In-Reply-To: <jh6clvFbu3vU1@mid.individual.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 30
Message-ID: <svHrK.3615$El2.3447@fx45.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 19 Jun 2022 10:44:24 -0500
X-Received-Bytes: 2838
 by: Ron Shepard - Sun, 19 Jun 2022 15:44 UTC

On 6/18/22 11:26 AM, pehache wrote:
[...]
> People who had access to a Cray at the times also had classical unix
> workstations, with compilers defaulting REAL to 32 bits as usual. Many
> codes had to run on both machines.

I think this is why CRAY computers weren't more popular than they were.
Seymore Cray focused on high-end supercomputing, and he was not
interested in the full programming infrastructure to support that
supercomputing. There were several things that would have saved the
company and that computing environment, none of which happened:

1) PC-level, workstation-level, or department-level minicomputers that
supported the CRAY instruction set.

2) Development of interactive debuggers to facilitate code development.

3) Support for cross compilers that would allow code development on
PC-level computers. It would have been great if code could have run in
simulation mode on these computers, but even having the ability to
compile the code on a local PC or workstation to see compile-time
diagnostics would have been a huge step forward.

4) Support for fortran 8x, with array operations and more or less direct
support for vector hardware. Instead, it was not until the late 1980s
and 1990s that CRAY computers even supported f77.

$.02 -Ron Shepard

Re: Standardize real*8 as real(kind=real64)?

<HKHrK.297617$5fVf.72976@fx09.iad>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2435&group=comp.lang.fortran#2435

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx09.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Subject: Re: Standardize real*8 as real(kind=real64)?
Content-Language: en-US
Newsgroups: comp.lang.fortran
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
From: nospam@nowhere.org (Ron Shepard)
In-Reply-To: <jh4f2uFueg7U1@mid.individual.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 27
Message-ID: <HKHrK.297617$5fVf.72976@fx09.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Sun, 19 Jun 2022 11:00:38 -0500
X-Received-Bytes: 2124
 by: Ron Shepard - Sun, 19 Jun 2022 16:00 UTC

On 6/17/22 5:55 PM, pehache wrote:
>>
>> I think the fortran KIND system is well thought out and it works well
>> in practice.
>
> And yet, it still lacks something as simple as REAL*8, which would
> select either the default REAL or the DOUBLE PRECISION, and nothing else.

The common real(wp) convention is only one character more, and it avoids
all of the problems with the literal kind value. You can write millions
of lines of code with that declaration, and the wp parameter can be
defined in a single line of code. To change precision throughout, only
that single line of code needs to be changed.

You can't make things easier than that.

Further, if for some reason there is a conflict of kinds between some
legacy code and the modern code, then you find out these problems at
compile time where they can be easily addressed. It does not require
some extensive testing and debugging at run time to find the kind
mismatches.

I do think it would be better if it were easier to incorporate legacy
code into modules. But it is hard to think of an improvement over the
fortran KIND system, for either mixed- or nonmixed precision arithmetic.

$.02 -Ron Shepard

Re: Standardize real*8 as real(kind=real64)?

<jh9i03Frj06U1@mid.individual.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2436&group=comp.lang.fortran#2436

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!news.szaf.org!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: pehache.7@gmail.com (pehache)
Newsgroups: comp.lang.fortran
Subject: Re: Standardize real*8 as real(kind=real64)?
Date: Sun, 19 Jun 2022 23:15:47 +0200
Lines: 56
Message-ID: <jh9i03Frj06U1@mid.individual.net>
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<f520ba36-83fe-4ba1-a444-64c82a92559cn@googlegroups.com>
<392becf1-044b-4800-b85c-1d744e91a55cn@googlegroups.com>
<07c52bfd-9b23-4672-adf4-ba24cad094b5n@googlegroups.com>
<t34lac$utb$1@dont-email.me>
<f112d480-3ecf-4d92-84e0-56176111738dn@googlegroups.com>
<ee6e22a7-f32c-4177-9edb-14c032b9ea05n@googlegroups.com>
<BJB5K.428392$t2Bb.353109@fx98.iad> <jh4bvjFu004U1@mid.individual.net>
<881886a1-5d05-46c3-806d-cba5be43566cn@googlegroups.com>
<jh566rF38puU1@mid.individual.net>
<6f328b30-4e4a-4e2a-bdf2-cadc159d9895n@googlegroups.com>
<jh6clvFbu3vU1@mid.individual.net> <svHrK.3615$El2.3447@fx45.iad>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: individual.net Qk3jAuL/mVotaRgZ1Q2GPAfuHaO0EmrwMF1X6PCN1vSqp0bArr
Cancel-Lock: sha1:zukMSlvY2D1cnMTjpWbd9FPkXEU=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Content-Language: fr
In-Reply-To: <svHrK.3615$El2.3447@fx45.iad>
 by: pehache - Sun, 19 Jun 2022 21:15 UTC

Le 19/06/2022 à 17:44, Ron Shepard a écrit :
> On 6/18/22 11:26 AM, pehache wrote:
> [...]
>> People who had access to a Cray at the times also had classical unix
>> workstations, with compilers defaulting REAL to 32 bits as usual. Many
>> codes had to run on both machines.
>
> I think this is why CRAY computers weren't more popular than they were.

I think the main reason was the price :)

> Seymore Cray focused on high-end supercomputing, and he was not
> interested in the full programming infrastructure to support that
> supercomputing. There were several things that would have saved the
> company and that computing environment, none of which happened:
>
> 1) PC-level, workstation-level, or department-level minicomputers that
> supported the CRAY instruction set.
>
> 2) Development of interactive debuggers to facilitate code development.
>
> 3) Support for cross compilers that would allow code development on
> PC-level computers. It would have been great if code could have run in
> simulation mode on these computers, but even having the ability to
> compile the code on a local PC or workstation to see compile-time
> diagnostics would have been a huge step forward.
>
> 4) Support for fortran 8x, with array operations and more or less direct
> support for vector hardware. Instead, it was not until the late 1980s
> and 1990s that CRAY computers even supported f77.

I have worked a bit on Cray computers near the end of this era, in the
1990's, and I don't share this analysis.

For development, tests, small to medium volumes of calculations, we had
Sun and HP workstations. The codes were tested, debugged, etc, first on
these workstations, and didn't need a lot of additional work on the Cray
itself. Sure, an interactive debugger or a cross-compiler may have
helped a bit, but I don't remember that we had big troubles.

Early support for f90, maybe... But even in the 1990s f90 was not that
popular in high performance computing (for sometimes good, sometimes bad
reasons). The recommandation where I was working (as a PhD student) was
to stick to f77. So the lack of f90 features on the Cray was not a big
problem I guess.

Regarding workstation-level computers, I have some doubts... The
architecture was so special that it would have been quite difficult to
tranpose it to lower end machines.

--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
ST passe le mur du çon : <j3nn2hFmqj7U1@mid.individual.net>

Re: Standardize real*8 as real(kind=real64)?

<t8p9t8$1uf8$1@gioia.aioe.org>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2437&group=comp.lang.fortran#2437

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!aioe.org!SsQ9R6/+Je+mewmUvumc7g.user.46.165.242.75.POSTED!not-for-mail
From: helbig@asclothestro.multivax.de (Phillip Helbig (undress to reply)
Newsgroups: comp.lang.fortran
Subject: Re: Standardize real*8 as real(kind=real64)?
Date: Mon, 20 Jun 2022 08:08:08 -0000 (UTC)
Organization: Multivax C&R
Message-ID: <t8p9t8$1uf8$1@gioia.aioe.org>
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com> <1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net> <jh6nt3Fdm3mU1@mid.individual.net> <jh6ntuFdm3mU2@mid.individual.net> <t8la0v$1dj1$1@gioia.aioe.org> <jh8mctFn6e2U1@mid.individual.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="63976"; posting-host="SsQ9R6/+Je+mewmUvumc7g.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
X-Notice: Filtered by postfilter v. 0.9.2
 by: Phillip Helbig (undr - Mon, 20 Jun 2022 08:08 UTC

In article <jh8mctFn6e2U1@mid.individual.net>, pehache
<pehache.7@gmail.com> writes:

> Le 18/06/2022 à 21:45, Phillip Helbig (undress to reply) a écrit :
> >>>> integer, parameter :: sp = kind(1.0)
> >>>> integer, parameter :: dp = kind(1.0d0)
> >
> > In such cases, why not just write REAL and DOUBLE PRECISION?
>
> Just to simplify the two lines that come ater and that you have cut ;)

Yes, you have a point. However, I have seen the above used standalone.

Re: Standardize real*8 as real(kind=real64)?

<t8pair$bu8$1@newsreader4.netcologne.de>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2438&group=comp.lang.fortran#2438

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!.POSTED.2001-4dd7-3fa9-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de!not-for-mail
From: tkoenig@netcologne.de (Thomas Koenig)
Newsgroups: comp.lang.fortran
Subject: Re: Standardize real*8 as real(kind=real64)?
Date: Mon, 20 Jun 2022 08:19:39 -0000 (UTC)
Organization: news.netcologne.de
Distribution: world
Message-ID: <t8pair$bu8$1@newsreader4.netcologne.de>
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<f520ba36-83fe-4ba1-a444-64c82a92559cn@googlegroups.com>
<392becf1-044b-4800-b85c-1d744e91a55cn@googlegroups.com>
<07c52bfd-9b23-4672-adf4-ba24cad094b5n@googlegroups.com>
<t34lac$utb$1@dont-email.me>
<f112d480-3ecf-4d92-84e0-56176111738dn@googlegroups.com>
<ee6e22a7-f32c-4177-9edb-14c032b9ea05n@googlegroups.com>
<BJB5K.428392$t2Bb.353109@fx98.iad> <jh4bvjFu004U1@mid.individual.net>
<881886a1-5d05-46c3-806d-cba5be43566cn@googlegroups.com>
<jh566rF38puU1@mid.individual.net>
<6f328b30-4e4a-4e2a-bdf2-cadc159d9895n@googlegroups.com>
<jh6clvFbu3vU1@mid.individual.net> <svHrK.3615$El2.3447@fx45.iad>
Injection-Date: Mon, 20 Jun 2022 08:19:39 -0000 (UTC)
Injection-Info: newsreader4.netcologne.de; posting-host="2001-4dd7-3fa9-0-7285-c2ff-fe6c-992d.ipv6dyn.netcologne.de:2001:4dd7:3fa9:0:7285:c2ff:fe6c:992d";
logging-data="12232"; mail-complaints-to="abuse@netcologne.de"
User-Agent: slrn/1.0.3 (Linux)
 by: Thomas Koenig - Mon, 20 Jun 2022 08:19 UTC

Ron Shepard <nospam@nowhere.org> schrieb:
> On 6/18/22 11:26 AM, pehache wrote:
> [...]
>> People who had access to a Cray at the times also had classical unix
>> workstations, with compilers defaulting REAL to 32 bits as usual. Many
>> codes had to run on both machines.
>
> I think this is why CRAY computers weren't more popular than they were.

Crays and other mainframes were very expensive mainframes, and they
were not suitable for every task. Partial differential equations
were great, but for solving ODEs, for example, they were not
particularly fast.

> Seymore Cray focused on high-end supercomputing, and he was not
> interested in the full programming infrastructure to support that
> supercomputing. There were several things that would have saved the
> company and that computing environment, none of which happened:

Vector computers were only effective for a particular time, when
memory latency was relatively low compared to the cycle time and
you could use the vector pipes to do several operations per cycle.
They had no cache, for example.

Nowadays, you get several operations by cycle using superscalar
OoO - microarchitectures. DRAM speed has not increased as much
as cycle times, which led to the introduction of multi-level
cache hierarchies.

If your algorithms have a good cache footprint, you can also do
several operations per cycle, with very good flexibility, and this
does not count the "vectorization" (which is really a bit painful)
using SIMD registers, which can lead to a large speedup for the
right problems and right algorithms (and the right compiler magic,
which is still lacking for many cases). SIMD is an area where a
good assembler programmer can still get a factor 2,4 or 8 against
normal code.

And, of course, there's graphics cards - very hard to program,
extremely fast, often memory bound.

> 1) PC-level, workstation-level, or department-level minicomputers that
> supported the CRAY instruction set.

Once the ISA was no longer beneficial, that would have died out.

> 2) Development of interactive debuggers to facilitate code development.
>
> 3) Support for cross compilers that would allow code development on
> PC-level computers. It would have been great if code could have run in
> simulation mode on these computers, but even having the ability to
> compile the code on a local PC or workstation to see compile-time
> diagnostics would have been a huge step forward.

I did both of the above with a Fujitsu VP and a HP workstation,
later with Linux. I even wrote a short wrapper to convert END DO
to the standarf F77 form.

> 4) Support for fortran 8x, with array operations and more or less direct
> support for vector hardware. Instead, it was not until the late 1980s
> and 1990s that CRAY computers even supported f77.

Late introduction for never Fortran version, and late adoption by
vendors, has led to Fortran's lost decase (or so). Once people
had discovered the ubiquitous C language, with all its faults
(but with structs and recursion and dynamic memory management)
that particular train left its station.

Re: Standardize real*8 as real(kind=real64)?

<rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2440&group=comp.lang.fortran#2440

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!paganini.bofh.team!pasdenom.info!from-devjntp
Message-ID: <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
JNTP-Route: news2.nemoweb.net
JNTP-DataType: Article
Subject: Re: Standardize real*8 as real(kind=real64)?
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com> <1bj4K.210690$OT%7.139979@fx07.iad>
<jh4f2uFueg7U1@mid.individual.net> <HKHrK.297617$5fVf.72976@fx09.iad>
Newsgroups: comp.lang.fortran
JNTP-HashClient: Tu6Dy6cfGroqQ29LsPR-X1F3EF0
JNTP-ThreadID: c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com
JNTP-Uri: http://news2.nemoweb.net/?DataID=rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp
User-Agent: Nemo/0.999a
JNTP-OriginServer: news2.nemoweb.net
Date: Mon, 20 Jun 22 16:06:38 +0000
Organization: Nemoweb
JNTP-Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Injection-Info: news2.nemoweb.net; posting-host="57a7697b711e1390e43e8d98aa87a8bb5a5fec17"; logging-data="2022-06-20T16:06:38Z/7001796"; posting-account="44@news2.nemoweb.net"; mail-complaints-to="newsmaster@news2.nemoweb.net"
JNTP-ProtocolVersion: 0.21.1
JNTP-Server: PhpNemoServer/0.94.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-JNTP-JsonNewsGateway: 0.96
From: pehache.7@gmail.com (pehache)
 by: pehache - Mon, 20 Jun 2022 16:06 UTC

Le 19/06/2022 à 18:00, Ron Shepard a écrit :
> On 6/17/22 5:55 PM, pehache wrote:
>>>
>>> I think the fortran KIND system is well thought out and it works well
>>> in practice.
>>
>> And yet, it still lacks something as simple as REAL*8, which would
>> select either the default REAL or the DOUBLE PRECISION, and nothing else.
>
> The common real(wp) convention is only one character more, and it avoids
> all of the problems with the literal kind value. You can write millions
> of lines of code with that declaration, and the wp parameter can be
> defined in a single line of code. To change precision throughout, only
> that single line of code needs to be changed.
>
> You can't make things easier than that.
>
> Further, if for some reason there is a conflict of kinds between some
> legacy code and the modern code, then you find out these problems at
> compile time where they can be easily addressed. It does not require
> some extensive testing and debugging at run time to find the kind
> mismatches.
>
> I do think it would be better if it were easier to incorporate legacy
> code into modules. But it is hard to think of an improvement over the
> fortran KIND system, for either mixed- or nonmixed precision arithmetic.

In practice I mostly agree with you.

Still, there is something missing: how do you know the degree of hardware
support of a given kind?

Requesting and obtaining a true quadruple precision real (128 bits) is
nice, but if it is emulated maybe you would prefer (or not) an extended
precision real (80 bits) that is much faster (at the price of more
algorithmic work on your side).

Also imagine a future machine where the hardware floating point model
would not be IEEE (because the vendor has found another representation
that is simpler to implement, or that allows higher performances, or
whatever), but with a compiler that also provides emulated IEEE kinds for
compatibility purposes. Then selected_real_kind() may return an emulated
kind even for usual precisions...

Also in theory the result of selected_real_kind() could be a kind that is
neither REAL nor DOUBLE PRECISION. But if your code is calling libraries
such as BLAS/LAPACK, you really want only one of these two...

What I mean here is that in practice, the usage of all the kind system
rely on some assumptions about the hardware. It's OK because we have
nowadays quite standardized machines, but we tend to forget that we are
making assumptions.

Re: Standardize real*8 as real(kind=real64)?

<%g2sK.299020$5fVf.236326@fx09.iad>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2441&group=comp.lang.fortran#2441

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx09.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Subject: Re: Standardize real*8 as real(kind=real64)?
Content-Language: en-US
Newsgroups: comp.lang.fortran
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<HKHrK.297617$5fVf.72976@fx09.iad> <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
From: nospam@nowhere.org (Ron Shepard)
In-Reply-To: <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 40
Message-ID: <%g2sK.299020$5fVf.236326@fx09.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Mon, 20 Jun 2022 12:39:06 -0500
X-Received-Bytes: 3235
 by: Ron Shepard - Mon, 20 Jun 2022 17:39 UTC

On 6/20/22 11:06 AM, pehache wrote:
> Also in theory the result of selected_real_kind() could be a kind that
> is neither REAL nor DOUBLE PRECISION. But if your code is calling
> libraries such as BLAS/LAPACK, you really want only one of these two...

This is a shortcoming of the implementation of the BLAS and LAPACK
libraries. They were designed to support the real and double precision
provided by fortran in the 1970s and 1980s, and nothing else.

>
> What I mean here is that in practice, the usage of all the kind system
> rely on some assumptions about the hardware. It's OK because we have
> nowadays quite standardized machines, but we tend to forget that we are
> making assumptions.

I think the fortran kind system is quite open ended and well designed.
When combined with explicit interfaces, which prevent mistakes
associated with mismatched arguments, it seems hard to beat the design.
Take for example, the two 8-byte floating point representations
supported by the VAX computers in the 1980s. It was very difficult
within a program to either switch back and forth between those data
types or to have a program that allowed mixtures. Instead, you basically
compiled your code either one way or the other, and took whatever that
produced. The modern fortran kind system would have solved both of those
problems. Of course, Ken Olsen, who was CEO of DEC in the 1980s, opposed
modern fortran, so that support never happened during the VAX lifetime.

The problem I see with fortran isn't the kind system, which allows the
programmer to mix kinds within expressions with complete control, rather
it is the complications that come from the library support of those
kinds. If a compiler has, say 10 different real kinds, then it is
required to support all of the intrinsics for each of those kinds, all
the exp and log functions, all the trig functions, all the Bessel
functions, and so on, for both real and complex types. That seems like a
high hurdle. I don't know what the answer is for this. Maybe the
language should have two types of support, one just a subset for simple
operations, and the other level being the full support as it is now.

$.02 -Ron Shepard

Re: Standardize real*8 as real(kind=real64)?

<d40767f6-adee-465d-9355-a3e251e03014n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2445&group=comp.lang.fortran#2445

  copy link   Newsgroups: comp.lang.fortran
X-Received: by 2002:a05:6000:1686:b0:21b:9870:47b with SMTP id y6-20020a056000168600b0021b9870047bmr542012wrd.687.1655776649897;
Mon, 20 Jun 2022 18:57:29 -0700 (PDT)
X-Received: by 2002:a81:4ccb:0:b0:30c:71ba:6e1a with SMTP id
z194-20020a814ccb000000b0030c71ba6e1amr29938437ywa.431.1655776649441; Mon, 20
Jun 2022 18:57:29 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!newsreader4.netcologne.de!news.netcologne.de!feeder1.cambriumusenet.nl!feed.tweak.nl!209.85.128.88.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.fortran
Date: Mon, 20 Jun 2022 18:57:29 -0700 (PDT)
In-Reply-To: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:cccc:70d5:959b:1a37;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:cccc:70d5:959b:1a37
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <d40767f6-adee-465d-9355-a3e251e03014n@googlegroups.com>
Subject: Re: Standardize real*8 as real(kind=real64)?
From: gah4@u.washington.edu (gah4)
Injection-Date: Tue, 21 Jun 2022 01:57:29 +0000
Content-Type: text/plain; charset="UTF-8"
 by: gah4 - Tue, 21 Jun 2022 01:57 UTC

On Saturday, April 9, 2022 at 7:05:29 AM UTC-7, Beliavsky wrote:
> Since compilers treat the non-standard but very common
>
> real*4, real*8, integer*4, integer*8

I just notice that there is no mention of COMPLEX*8, COMPLEX*16, and even COMPLEX*32.

Should we have those, too?

Re: Standardize real*8 as real(kind=real64)?

<jhdmt7FhkrbU1@mid.individual.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2447&group=comp.lang.fortran#2447

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: pehache.7@gmail.com (pehache)
Newsgroups: comp.lang.fortran
Subject: Re: Standardize real*8 as real(kind=real64)?
Date: Tue, 21 Jun 2022 13:04:06 +0200
Lines: 38
Message-ID: <jhdmt7FhkrbU1@mid.individual.net>
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<HKHrK.297617$5fVf.72976@fx09.iad> <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
<%g2sK.299020$5fVf.236326@fx09.iad>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: individual.net U/ZjzivwbQuUTqrIL7W4/AVwpiXAy8CJqFJ+ntZB6OSaBA/Imr
Cancel-Lock: sha1:QZeJsCgjMbJ8w/KeKeHDgMP+dyo=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Content-Language: fr
In-Reply-To: <%g2sK.299020$5fVf.236326@fx09.iad>
 by: pehache - Tue, 21 Jun 2022 11:04 UTC

Le 20/06/2022 à 19:39, Ron Shepard a écrit :
> On 6/20/22 11:06 AM, pehache wrote:
>> Also in theory the result of selected_real_kind() could be a kind that
>> is neither REAL nor DOUBLE PRECISION. But if your code is calling
>> libraries such as BLAS/LAPACK, you really want only one of these two...
>
> This is a shortcoming of the implementation of the BLAS and LAPACK
> libraries. They were designed to support the real and double precision
> provided by fortran in the 1970s and 1980s, and nothing else.

Whatever, this is something that should be addressed, as legacy has
always been something to care about in Fortran.

For instance :

selected_real_kind(p,r,list) where list would be an optional array of
kinds we want to chose from

or a "double" kind value provided by ISO_FORTRAN_ENV (or stdlib_kind at
the moment), which would have at leasts 10 digits precison and that
would be either kind(1.0) or kind(1.0d0)

By the way, as long as there's no full generic programming in Fortran,
writing libraries for all possible kinds that can be encountered is not
easy.

> I don't know what the answer is for this. Maybe the
> language should have two types of support, one just a subset for simple
> operations, and the other level being the full support as it is now.

Let's say that REAL and DOUBLE PRECISION must have full support, and the
rest don't have to... :)

--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
ST passe le mur du çon : <j3nn2hFmqj7U1@mid.individual.net>

Re: Standardize real*8 as real(kind=real64)?

<c86a553b-b76e-4b09-ac09-dc633a474603n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2449&group=comp.lang.fortran#2449

  copy link   Newsgroups: comp.lang.fortran
X-Received: by 2002:adf:e189:0:b0:218:45f0:5c0a with SMTP id az9-20020adfe189000000b0021845f05c0amr27765580wrb.683.1655814941990;
Tue, 21 Jun 2022 05:35:41 -0700 (PDT)
X-Received: by 2002:a81:574c:0:b0:317:7c3a:45be with SMTP id
l73-20020a81574c000000b003177c3a45bemr27373336ywb.316.1655814941540; Tue, 21
Jun 2022 05:35:41 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.128.87.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.fortran
Date: Tue, 21 Jun 2022 05:35:41 -0700 (PDT)
In-Reply-To: <%g2sK.299020$5fVf.236326@fx09.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:6cff:38da:fa2b:1484;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:6cff:38da:fa2b:1484
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<HKHrK.297617$5fVf.72976@fx09.iad> <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp> <%g2sK.299020$5fVf.236326@fx09.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c86a553b-b76e-4b09-ac09-dc633a474603n@googlegroups.com>
Subject: Re: Standardize real*8 as real(kind=real64)?
From: gah4@u.washington.edu (gah4)
Injection-Date: Tue, 21 Jun 2022 12:35:41 +0000
Content-Type: text/plain; charset="UTF-8"
 by: gah4 - Tue, 21 Jun 2022 12:35 UTC

On Monday, June 20, 2022 at 10:39:10 AM UTC-7, Ron Shepard wrote:

(snip)

> I think the fortran kind system is quite open ended and well designed.
> When combined with explicit interfaces, which prevent mistakes
> associated with mismatched arguments, it seems hard to beat the design.

I suppose, but it leaves out that you often don't know the kind needed.

Maybe it is more obvious for integers. They need to be big enough
for whatever you might want to count. And you might know now how
big is enough, but maybe not forever, when your program might be
used by someone else. 32 bit integers are big enough for the
size (one dimension) of a square matrix, but maybe not for the
number of elements. 16 bit integers are not big enough for
storing a US (five digit) zip code.

For floating point, very little is built to better than single
precision. (About 1mm per km, or 1s per day, or one gram
per ton.) But very often double precision intermediates
are needed to get single precision results. That is true
for many matrix algorithms, and often for numerical
derivatives.

Sometimes we know that four or five digits is good
enough, but that isn't enough reason to rewrite the
program to use that precision. (Assuming that there
is hardware to supply it.)

Most often, algorithms are written to "good enough"
precision.

You could write REAL(SELECTED_REAL_KIND(8)) when you knew
that 8 digits was enough, and that you didn't need 12 or 14.

But since 8 digit hardware is rare, might as well just use the
usual hardware precision of about 52 significant bits.

Re: Standardize real*8 as real(kind=real64)?

<880e3b73-d726-4692-84d0-2ce7fa976872n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2451&group=comp.lang.fortran#2451

  copy link   Newsgroups: comp.lang.fortran
X-Received: by 2002:a5d:6309:0:b0:21b:9455:cf with SMTP id i9-20020a5d6309000000b0021b945500cfmr6258652wru.354.1655816825154;
Tue, 21 Jun 2022 06:07:05 -0700 (PDT)
X-Received: by 2002:a81:574c:0:b0:317:7c3a:45be with SMTP id
l73-20020a81574c000000b003177c3a45bemr27548542ywb.316.1655816824387; Tue, 21
Jun 2022 06:07:04 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.128.88.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.fortran
Date: Tue, 21 Jun 2022 06:07:04 -0700 (PDT)
In-Reply-To: <jh56iuF3aa9U1@mid.individual.net>
Injection-Info: google-groups.googlegroups.com; posting-host=202.67.103.232; posting-account=S_MdrwoAAAD7T2pxG2e393dk6y0tc0Le
NNTP-Posting-Host: 202.67.103.232
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<736228be-077a-4bd1-bc41-36649cf0967en@googlegroups.com> <jh56iuF3aa9U1@mid.individual.net>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <880e3b73-d726-4692-84d0-2ce7fa976872n@googlegroups.com>
Subject: Re: Standardize real*8 as real(kind=real64)?
From: robin.vowels@gmail.com (Robin Vowels)
Injection-Date: Tue, 21 Jun 2022 13:07:05 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Robin Vowels - Tue, 21 Jun 2022 13:07 UTC

On Saturday, June 18, 2022 at 3:36:34 PM UTC+10, pehache wrote:
> Le 18/06/2022 à 04:21, Robin Vowels a écrit :
> >>
> >> I used to write:
> >>
> >> integer, parameter :: sp = kind(1.0)
> >> integer, parameter :: dp = kind(1.0d0)
> >> integer, parameter :: sp_is_enough = min(max(precision(sp)-9,1),0)
> >> integer, parameter :: double = sp*sp_is_enough + dp*(1-sp_is_enough)
> > .
> > This last line won't work in some compilers.
> > .
> Isn't it a constant expression ?
..
0004) integer, parameter :: sp_is_enough = min(max(precision(sp)-9,1),0)
*** The first argument (X) to the intrinsic PRECISION must be of REAL or
COMPLEX type, not INTEGER(KIND=3)

Re: Standardize real*8 as real(kind=real64)?

<jhe5atFjvreU1@mid.individual.net>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2453&group=comp.lang.fortran#2453

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: pehache.7@gmail.com (pehache)
Newsgroups: comp.lang.fortran
Subject: Re: Standardize real*8 as real(kind=real64)?
Date: Tue, 21 Jun 2022 17:10:20 +0200
Lines: 26
Message-ID: <jhe5atFjvreU1@mid.individual.net>
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<736228be-077a-4bd1-bc41-36649cf0967en@googlegroups.com>
<jh56iuF3aa9U1@mid.individual.net>
<880e3b73-d726-4692-84d0-2ce7fa976872n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: individual.net BZ2CsPmjRjrS5JuXDuS0rwKjnMg3sJoynU/aOfWY2UKX37Fww8
Cancel-Lock: sha1:xzxoEGqlPdiGGvSrrzNwr1sg/w8=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Content-Language: fr
In-Reply-To: <880e3b73-d726-4692-84d0-2ce7fa976872n@googlegroups.com>
 by: pehache - Tue, 21 Jun 2022 15:10 UTC

Le 21/06/2022 à 15:07, Robin Vowels a écrit :
> On Saturday, June 18, 2022 at 3:36:34 PM UTC+10, pehache wrote:
>> Le 18/06/2022 à 04:21, Robin Vowels a écrit :
>>>>
>>>> I used to write:
>>>>
>>>> integer, parameter :: sp = kind(1.0)
>>>> integer, parameter :: dp = kind(1.0d0)
>>>> integer, parameter :: sp_is_enough = min(max(precision(sp)-9,1),0)
>>>> integer, parameter :: double = sp*sp_is_enough + dp*(1-sp_is_enough)
>>> .
>>> This last line won't work in some compilers.
>>> .
>> Isn't it a constant expression ?
> .
> 0004) integer, parameter :: sp_is_enough = min(max(precision(sp)-9,1),0)
> *** The first argument (X) to the intrinsic PRECISION must be of REAL or
> COMPLEX type, not INTEGER(KIND=3)

Ah, yes, on the *third* line it should be "precision(1.0)" and not
"precision(sp)"

--
"...sois ouvert aux idées des autres pour peu qu'elles aillent dans le
même sens que les tiennes.", ST sur fr.bio.medecine
ST passe le mur du çon : <j3nn2hFmqj7U1@mid.individual.net>

Re: Standardize real*8 as real(kind=real64)?

<SolsK.180149$JVi.25417@fx17.iad>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2454&group=comp.lang.fortran#2454

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx17.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Subject: Re: Standardize real*8 as real(kind=real64)?
Content-Language: en-US
Newsgroups: comp.lang.fortran
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<HKHrK.297617$5fVf.72976@fx09.iad> <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
<%g2sK.299020$5fVf.236326@fx09.iad> <jhdmt7FhkrbU1@mid.individual.net>
From: nospam@nowhere.org (Ron Shepard)
In-Reply-To: <jhdmt7FhkrbU1@mid.individual.net>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Lines: 81
Message-ID: <SolsK.180149$JVi.25417@fx17.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Tue, 21 Jun 2022 10:24:34 -0500
X-Received-Bytes: 5174
 by: Ron Shepard - Tue, 21 Jun 2022 15:24 UTC

On 6/21/22 6:04 AM, pehache wrote:
> Le 20/06/2022 à 19:39, Ron Shepard a écrit :
>> On 6/20/22 11:06 AM, pehache wrote:
>>> Also in theory the result of selected_real_kind() could be a kind
>>> that is neither REAL nor DOUBLE PRECISION. But if your code is
>>> calling libraries such as BLAS/LAPACK, you really want only one of
>>> these two...
>>
>> This is a shortcoming of the implementation of the BLAS and LAPACK
>> libraries. They were designed to support the real and double precision
>> provided by fortran in the 1970s and 1980s, and nothing else.
>
> Whatever, this is something that should be addressed, as legacy has
> always been something to care about in Fortran.

Note that some vendors supported 128-bit floating point arithmetic even
in the 1970s and early 1980s when these libraries were first developed.
They did extend the use to double precision complex, a common extension
that was not part of standard fortran, but they did not account for any
other real or complex kinds. Now that the kind facility is available,
this could be done in a straightforward way, but that hasn't occurred in
the 30+ years since f90 has been available. I'm just guessing about
this, but I think the reason is that the source code is available, so if
some individual wanted a 128-bit floating point version of some linear
algebra code, he could do the work himself.

>
> For instance :
>
> selected_real_kind(p,r,list) where list would be an optional array of
> kinds we want to chose from
>
> or a "double" kind value provided by ISO_FORTRAN_ENV (or stdlib_kind at
> the moment), which would have at leasts 10 digits precison and that
> would be either kind(1.0) or kind(1.0d0)

This is already what selected_real_kind(10) does. If there are more than
one choice, then maybe it doesn't return the one the programmer might
want, but then the other exponent and base arguments can be added to
refine the selection. In any case, this only needs to be done once in a
program, and it propagates throughout the code from that one place.

> By the way, as long as there's no full generic programming in Fortran,
> writing libraries for all possible kinds that can be encountered is not
> easy.

If a programmer wants to manually specify the kinds, then it is not too
difficult. If he wants to automate the process, and produce different
numbers of kind versions on different machines, then it is more
difficult. And then if the programmer wants to allow mixed-kind
arguments, including various combinations of integer, real, and complex
kinds, it becomes truly a difficult process.

>> I don't know what the answer is for this. Maybe the language should
>> have two types of support, one just a subset for simple operations,
>> and the other level being the full support as it is now.
>
> Let's say that REAL and DOUBLE PRECISION must have full support, and the
> rest don't have to... :)

What I meant was some simple operations (+-*/><) along with some subset
of conversions and query functions (int(), real(), cmplx(), precision(),
max_val(), min_val(), nearest(), and so on). If the compiler supported
that minimal subset of operations on a kind value, then the programmer
could go from there and do whatever else was necessary, complex log
functions or whatever, entirely within that supported subset of
operations. There would be no need to write assembler language or use
interfaces to other languages, it could all be done within fortran. An
interface to the function could extend the intrinsic functions, and from
there the programmer could access it the same way as if that kind were
supported in the language.

BTW, that kind of formalized minimal support for some KIND might also be
a way to allow unsigned integers and bit strings into the language. They
would be second class passengers in the language compared to the other
integers, but that subset would allow them to be used where they are
needed, without blowing up the rest of the language.

$.02 -Ron Shepard

Re: Standardize real*8 as real(kind=real64)?

<zSlsK.180151$JVi.62540@fx17.iad>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2455&group=comp.lang.fortran#2455

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx17.iad.POSTED!not-for-mail
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:91.0)
Gecko/20100101 Thunderbird/91.10.0
Subject: Re: Standardize real*8 as real(kind=real64)?
Content-Language: en-US
Newsgroups: comp.lang.fortran
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<HKHrK.297617$5fVf.72976@fx09.iad> <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
<%g2sK.299020$5fVf.236326@fx09.iad>
<c86a553b-b76e-4b09-ac09-dc633a474603n@googlegroups.com>
From: nospam@nowhere.org (Ron Shepard)
In-Reply-To: <c86a553b-b76e-4b09-ac09-dc633a474603n@googlegroups.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Lines: 73
Message-ID: <zSlsK.180151$JVi.62540@fx17.iad>
X-Complaints-To: abuse@easynews.com
Organization: Forte - www.forteinc.com
X-Complaints-Info: Please be sure to forward a copy of ALL headers otherwise we will be unable to process your complaint properly.
Date: Tue, 21 Jun 2022 10:56:15 -0500
X-Received-Bytes: 4475
 by: Ron Shepard - Tue, 21 Jun 2022 15:56 UTC

On 6/21/22 7:35 AM, gah4 wrote:
> On Monday, June 20, 2022 at 10:39:10 AM UTC-7, Ron Shepard wrote:
>
> (snip)
>
>> I think the fortran kind system is quite open ended and well designed.
>> When combined with explicit interfaces, which prevent mistakes
>> associated with mismatched arguments, it seems hard to beat the design.
>
> I suppose, but it leaves out that you often don't know the kind needed.
>
> Maybe it is more obvious for integers. They need to be big enough
> for whatever you might want to count. And you might know now how
> big is enough, but maybe not forever, when your program might be
> used by someone else. 32 bit integers are big enough for the
> size (one dimension) of a square matrix, but maybe not for the
> number of elements. 16 bit integers are not big enough for
> storing a US (five digit) zip code.

Selected_int_kind(5) is enough to hold current zip codes, and if the
post office were to add another digit, then selected_int_kind(6) would
be sufficient. In this case, one does know the number of digits in
advance. I've used machines in the past that supported 3-byte integers,
although that was before f90 was available. That kind value can be
specified in a single place, and then propagated throughout your code,
so if the usps does add that digit, you only need to change a single
character in your source code, recompile, and you are good to go.

> For floating point, very little is built to better than single
> precision. (About 1mm per km, or 1s per day, or one gram
> per ton.) But very often double precision intermediates
> are needed to get single precision results. That is true
> for many matrix algorithms, and often for numerical
> derivatives.

Yes, but these are comments about floating point arithmetic. Sometimes
you need more mantissa bits, sometimes you need more exponent bits,
sometimes you need both.

> Sometimes we know that four or five digits is good
> enough, but that isn't enough reason to rewrite the
> program to use that precision. (Assuming that there
> is hardware to supply it.)
>
> Most often, algorithms are written to "good enough"
> precision.
>
> You could write REAL(SELECTED_REAL_KIND(8)) when you knew
> that 8 digits was enough, and that you didn't need 12 or 14.

Those machines that supported 3-byte integers also supported 6-byte
reals. That was sufficient for a lot of numerical work, but I think it
failed in a few places such as the ones you mention where extra
precision is necessary.

> But since 8 digit hardware is rare, might as well just use the
> usual hardware precision of about 52 significant bits.

Yes, this is the way floating point arithmetic is done typically. It
doesn't hurt much to use more precision than necessary, but it is
catastrophic to try to use too little precision. The exception is when
the additional precision is localized within the algorithm, such as an
extended precision accumulator, then you might see code that is written
in a more targeted and specific way. The other exception was back in the
1970s when memory was scarce. Then you might see minicomputer codes
where every integer and real declaration had a (2), (4), or (8), because
if they used integer(4) and real(8) everywhere, the program would not fit.

$.02 -Ron Shepard

Re: Standardize real*8 as real(kind=real64)?

<t8vkus$v8v$2@dont-email.me>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2460&group=comp.lang.fortran#2460

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: lynnmcguire5@gmail.com (Lynn McGuire)
Newsgroups: comp.lang.fortran
Subject: Re: Standardize real*8 as real(kind=real64)?
Date: Wed, 22 Jun 2022 12:53:30 -0500
Organization: A noiseless patient Spider
Lines: 14
Message-ID: <t8vkus$v8v$2@dont-email.me>
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<d40767f6-adee-465d-9355-a3e251e03014n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Wed, 22 Jun 2022 17:53:32 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="643fe03d9fbb9091101d148b09f8d6d6";
logging-data="32031"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18lQAYaXcvrluMynm9PrKxy"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101
Thunderbird/91.10.0
Cancel-Lock: sha1:tE+yCqwye6wi6kuT4cUSJvsM4n4=
In-Reply-To: <d40767f6-adee-465d-9355-a3e251e03014n@googlegroups.com>
Content-Language: en-US
 by: Lynn McGuire - Wed, 22 Jun 2022 17:53 UTC

On 6/20/2022 8:57 PM, gah4 wrote:
> On Saturday, April 9, 2022 at 7:05:29 AM UTC-7, Beliavsky wrote:
>> Since compilers treat the non-standard but very common
>>
>> real*4, real*8, integer*4, integer*8
>
> I just notice that there is no mention of COMPLEX*8, COMPLEX*16, and even COMPLEX*32.
>
> Should we have those, too?

And logical*4 and logical*8.

Lynn

Re: Standardize real*8 as real(kind=real64)?

<YsPWVntry677-SHJWzh95p6LirA@jntp>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2462&group=comp.lang.fortran#2462

  copy link   Newsgroups: comp.lang.fortran
Path: i2pn2.org!i2pn.org!aioe.org!pasdenom.info!from-devjntp
Message-ID: <YsPWVntry677-SHJWzh95p6LirA@jntp>
JNTP-Route: news2.nemoweb.net
JNTP-DataType: Article
Subject: Re: Standardize real*8 as real(kind=real64)?
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com> <1bj4K.210690$OT%7.139979@fx07.iad>
<jh4f2uFueg7U1@mid.individual.net> <HKHrK.297617$5fVf.72976@fx09.iad> <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
<%g2sK.299020$5fVf.236326@fx09.iad> <jhdmt7FhkrbU1@mid.individual.net> <SolsK.180149$JVi.25417@fx17.iad>
Newsgroups: comp.lang.fortran
JNTP-HashClient: QAZRBO01h3qfVmGA06eR54vrmBU
JNTP-ThreadID: c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com
JNTP-Uri: http://news2.nemoweb.net/?DataID=YsPWVntry677-SHJWzh95p6LirA@jntp
User-Agent: Nemo/0.999a
JNTP-OriginServer: news2.nemoweb.net
Date: Thu, 23 Jun 22 10:55:28 +0000
Organization: Nemoweb
JNTP-Browser: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0
Injection-Info: news2.nemoweb.net; posting-host="57a7697b711e1390e43e8d98aa87a8bb5a5fec17"; logging-data="2022-06-23T10:55:28Z/7009779"; posting-account="44@news2.nemoweb.net"; mail-complaints-to="newsmaster@news2.nemoweb.net"
JNTP-ProtocolVersion: 0.21.1
JNTP-Server: PhpNemoServer/0.94.5
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-JNTP-JsonNewsGateway: 0.96
From: pehache.7@gmail.com (pehache)
 by: pehache - Thu, 23 Jun 2022 10:55 UTC

Le 21/06/2022 à 17:24, Ron Shepard a écrit :
> On 6/21/22 6:04 AM, pehache wrote:
>> Le 20/06/2022 à 19:39, Ron Shepard a écrit :
>>> On 6/20/22 11:06 AM, pehache wrote:
>>>> Also in theory the result of selected_real_kind() could be a kind
>>>> that is neither REAL nor DOUBLE PRECISION. But if your code is
>>>> calling libraries such as BLAS/LAPACK, you really want only one of
>>>> these two...
>>>
>>> This is a shortcoming of the implementation of the BLAS and LAPACK
>>> libraries. They were designed to support the real and double precision
>>> provided by fortran in the 1970s and 1980s, and nothing else.
>>
>> Whatever, this is something that should be addressed, as legacy has
>> always been something to care about in Fortran.
>
> Note that some vendors supported 128-bit floating point arithmetic even
> in the 1970s and early 1980s when these libraries were first developed.
> They did extend the use to double precision complex, a common extension
> that was not part of standard fortran, but they did not account for any
> other real or complex kinds. Now that the kind facility is available,
> this could be done in a straightforward way, but that hasn't occurred in
> the 30+ years since f90 has been available. I'm just guessing about
> this, but I think the reason is that the source code is available, so if
> some individual wanted a 128-bit floating point version of some linear
> algebra code, he could do the work himself.

The main reason is that there is not something like a unified hardware
support for quadruple precision. If one writes a library and wants to
provide binaries for a platform that has no hardware support for quadruple
precision, what should one do? One can compile the library with a compiler
that has a real128 kind, but without any guarantee that it will work if
the compiled library is called from a code compiled with another compiler,
as different compilers may use different interpretation of real128
(ieee-754 compliant, or as "double double", or as the x86 10 bytes
floating point padded to 16 bytes, ...).

>> For instance :
>>
>> selected_real_kind(p,r,list) where list would be an optional array of
>> kinds we want to chose from
>>
>> or a "double" kind value provided by ISO_FORTRAN_ENV (or stdlib_kind at
>> the moment), which would have at leasts 10 digits precison and that
>> would be either kind(1.0) or kind(1.0d0)
>
> This is already what selected_real_kind(10) does.

No, it does not ensure that the result is necessarily kind(1.0) or
kind(1.0d0)

> If there are more than
> one choice, then maybe it doesn't return the one the programmer might
> want, but then the other exponent and base arguments can be added to
> refine the selection.

If the programmer knows what specific kind he wants beforehand, there's
simply no reason at all to use selected_real_kind()

It's like:
- "From now I want you to recruit from anonymous CVs"
- "OK, but really I'd like to hire this guy at the end"
- "No problem, just write job requirements that exactly correspond to his
skills"

:)

Re: Standardize real*8 as real(kind=real64)?

<69d0e789-6567-45c6-9667-6e15a4f16842n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2463&group=comp.lang.fortran#2463

  copy link   Newsgroups: comp.lang.fortran
X-Received: by 2002:a5d:584a:0:b0:218:4d71:5bd with SMTP id i10-20020a5d584a000000b002184d7105bdmr7988216wrf.267.1655986903845;
Thu, 23 Jun 2022 05:21:43 -0700 (PDT)
X-Received: by 2002:a25:bb4a:0:b0:669:7107:b6d7 with SMTP id
b10-20020a25bb4a000000b006697107b6d7mr9091192ybk.98.1655986903349; Thu, 23
Jun 2022 05:21:43 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.fortran
Date: Thu, 23 Jun 2022 05:21:43 -0700 (PDT)
In-Reply-To: <YsPWVntry677-SHJWzh95p6LirA@jntp>
Injection-Info: google-groups.googlegroups.com; posting-host=202.67.103.232; posting-account=S_MdrwoAAAD7T2pxG2e393dk6y0tc0Le
NNTP-Posting-Host: 202.67.103.232
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<HKHrK.297617$5fVf.72976@fx09.iad> <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
<%g2sK.299020$5fVf.236326@fx09.iad> <jhdmt7FhkrbU1@mid.individual.net>
<SolsK.180149$JVi.25417@fx17.iad> <YsPWVntry677-SHJWzh95p6LirA@jntp>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <69d0e789-6567-45c6-9667-6e15a4f16842n@googlegroups.com>
Subject: Re: Standardize real*8 as real(kind=real64)?
From: robin.vowels@gmail.com (Robin Vowels)
Injection-Date: Thu, 23 Jun 2022 12:21:43 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 4869
 by: Robin Vowels - Thu, 23 Jun 2022 12:21 UTC

On Thursday, June 23, 2022 at 8:55:32 PM UTC+10, pehache wrote:
> Le 21/06/2022 à 17:24, Ron Shepard a écrit :
> > On 6/21/22 6:04 AM, pehache wrote:
> >> Le 20/06/2022 à 19:39, Ron Shepard a écrit :
> >>> On 6/20/22 11:06 AM, pehache wrote:
> >>>> Also in theory the result of selected_real_kind() could be a kind
> >>>> that is neither REAL nor DOUBLE PRECISION. But if your code is
> >>>> calling libraries such as BLAS/LAPACK, you really want only one of
> >>>> these two...
> >>>
> >>> This is a shortcoming of the implementation of the BLAS and LAPACK
> >>> libraries. They were designed to support the real and double precision
> >>> provided by fortran in the 1970s and 1980s, and nothing else.
> >>
> >> Whatever, this is something that should be addressed, as legacy has
> >> always been something to care about in Fortran.
> >
> > Note that some vendors supported 128-bit floating point arithmetic even
> > in the 1970s and early 1980s when these libraries were first developed.
> > They did extend the use to double precision complex, a common extension
> > that was not part of standard fortran, but they did not account for any
> > other real or complex kinds. Now that the kind facility is available,
> > this could be done in a straightforward way, but that hasn't occurred in
> > the 30+ years since f90 has been available. I'm just guessing about
> > this, but I think the reason is that the source code is available, so if
> > some individual wanted a 128-bit floating point version of some linear
> > algebra code, he could do the work himself.
> The main reason is that there is not something like a unified hardware
> support for quadruple precision. If one writes a library and wants to
> provide binaries for a platform that has no hardware support for quadruple
> precision, what should one do? One can compile the library with a compiler
> that has a real128 kind, but without any guarantee that it will work if
> the compiled library is called from a code compiled with another compiler,
> as different compilers may use different interpretation of real128
> (ieee-754 compliant, or as "double double", or as the x86 10 bytes
> floating point padded to 16 bytes, ...).
> >> For instance :
> >>
> >> selected_real_kind(p,r,list) where list would be an optional array of
> >> kinds we want to chose from
> >>
> >> or a "double" kind value provided by ISO_FORTRAN_ENV (or stdlib_kind at
> >> the moment), which would have at leasts 10 digits precison and that
> >> would be either kind(1.0) or kind(1.0d0)
> >
> > This is already what selected_real_kind(10) does.
> No, it does not ensure that the result is necessarily kind(1.0) or
> kind(1.0d0)
> > If there are more than
> > one choice, then maybe it doesn't return the one the programmer might
> > want, but then the other exponent and base arguments can be added to
> > refine the selection.
> If the programmer knows what specific kind he wants beforehand, there's
> simply no reason at all to use selected_real_kind()

The point of using the kind system is that you don't need to know in advance
what kinds are available. SELECTED_REAL_KIND helps to do that.

Re: Standardize real*8 as real(kind=real64)?

<7e9c9f92-68b7-4194-81db-339b7ae338c8n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2464&group=comp.lang.fortran#2464

  copy link   Newsgroups: comp.lang.fortran
X-Received: by 2002:a05:600c:3ba8:b0:39c:5bba:5406 with SMTP id n40-20020a05600c3ba800b0039c5bba5406mr3953344wms.120.1655988368180;
Thu, 23 Jun 2022 05:46:08 -0700 (PDT)
X-Received: by 2002:a81:c249:0:b0:317:d34a:184c with SMTP id
t9-20020a81c249000000b00317d34a184cmr10078669ywg.392.1655988367585; Thu, 23
Jun 2022 05:46:07 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.128.88.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.fortran
Date: Thu, 23 Jun 2022 05:46:07 -0700 (PDT)
In-Reply-To: <YsPWVntry677-SHJWzh95p6LirA@jntp>
Injection-Info: google-groups.googlegroups.com; posting-host=2601:602:9700:4689:65d5:e294:5e85:c71;
posting-account=gLDX1AkAAAA26M5HM-O3sVMAXdxK9FPA
NNTP-Posting-Host: 2601:602:9700:4689:65d5:e294:5e85:c71
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<1bj4K.210690$OT%7.139979@fx07.iad> <jh4f2uFueg7U1@mid.individual.net>
<HKHrK.297617$5fVf.72976@fx09.iad> <rMGCRyTFBmLLtWj7fPdgphNZX4U@jntp>
<%g2sK.299020$5fVf.236326@fx09.iad> <jhdmt7FhkrbU1@mid.individual.net>
<SolsK.180149$JVi.25417@fx17.iad> <YsPWVntry677-SHJWzh95p6LirA@jntp>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7e9c9f92-68b7-4194-81db-339b7ae338c8n@googlegroups.com>
Subject: Re: Standardize real*8 as real(kind=real64)?
From: gah4@u.washington.edu (gah4)
Injection-Date: Thu, 23 Jun 2022 12:46:08 +0000
Content-Type: text/plain; charset="UTF-8"
 by: gah4 - Thu, 23 Jun 2022 12:46 UTC

On Thursday, June 23, 2022 at 3:55:32 AM UTC-7, pehache wrote:

(snip)

> No, it does not ensure that the result is necessarily kind(1.0) or
> kind(1.0d0)

Yes. But the big assumption with SELECTED_REAL_KIND is
that you know how many digits you need. In numerical
algorithms, that is fairly rare. With most matrix routines,
there is precision loss with subtraction, but you never
known when, where, or how much.

If you are lucky enough to know how many digits you
need in the end, you still don't know how much for
intermediate calculations.

The result is that, most of the time, you have to
assume kind(1.0) and kind(1.d0).

IBM has consistently supplied REAL*16 with the 360/85
and all 370 and successors. VAX has H_FLOAT, but
it might be in software emulation.

(Actually, for a long time IBM did DXR, that is,
extended precision divide, in software emulation,
even when the hardware had the rest. They did
a study to show that was good enough, enough
of the time. But then later, late ESA/390 days,
added it.)

Re: Standardize real*8 as real(kind=real64)?

<329d85df-8cb3-4b0a-802b-1781c821e563n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2465&group=comp.lang.fortran#2465

  copy link   Newsgroups: comp.lang.fortran
X-Received: by 2002:adf:e196:0:b0:219:f3c7:fd88 with SMTP id az22-20020adfe196000000b00219f3c7fd88mr9484617wrb.402.1656007392357;
Thu, 23 Jun 2022 11:03:12 -0700 (PDT)
X-Received: by 2002:a81:4e89:0:b0:317:e6b1:fa72 with SMTP id
c131-20020a814e89000000b00317e6b1fa72mr12106664ywb.138.1656007391598; Thu, 23
Jun 2022 11:03:11 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.128.87.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.fortran
Date: Thu, 23 Jun 2022 11:03:11 -0700 (PDT)
In-Reply-To: <392becf1-044b-4800-b85c-1d744e91a55cn@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fb70:6300:1987:e4f3:1313:d73c;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fb70:6300:1987:e4f3:1313:d73c
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<f520ba36-83fe-4ba1-a444-64c82a92559cn@googlegroups.com> <392becf1-044b-4800-b85c-1d744e91a55cn@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <329d85df-8cb3-4b0a-802b-1781c821e563n@googlegroups.com>
Subject: Re: Standardize real*8 as real(kind=real64)?
From: jsavard@ecn.ab.ca (Quadibloc)
Injection-Date: Thu, 23 Jun 2022 18:03:12 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Thu, 23 Jun 2022 18:03 UTC

On Monday, April 11, 2022 at 3:21:33 AM UTC-6, Robin Vowels wrote:
> On Sunday, April 10, 2022 at 3:35:25 PM UTC+10, JCampbell wrote:

> > real(dp) or real(kind=dp) is not clear,
> .
> in what way? "dp" is used often enough that it is immediately clear
> that it signifies double precision.

My quarrel with it is that it is redundant. DOUBLE PRECISION is already
in existence in the language; the syntax real(...) is for when you want to
specify by length instead.

John Savard

Re: Standardize real*8 as real(kind=real64)?

<90187e22-bc6f-48a4-802c-c736aa5e3de7n@googlegroups.com>

  copy mid

https://www.rocksolidbbs.com/devel/article-flat.php?id=2466&group=comp.lang.fortran#2466

  copy link   Newsgroups: comp.lang.fortran
X-Received: by 2002:a05:6000:1888:b0:218:3fab:c510 with SMTP id a8-20020a056000188800b002183fabc510mr9642199wri.473.1656007542519;
Thu, 23 Jun 2022 11:05:42 -0700 (PDT)
X-Received: by 2002:a05:6902:154b:b0:669:40a9:bdcc with SMTP id
r11-20020a056902154b00b0066940a9bdccmr11289626ybu.238.1656007541806; Thu, 23
Jun 2022 11:05:41 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.128.88.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.fortran
Date: Thu, 23 Jun 2022 11:05:41 -0700 (PDT)
In-Reply-To: <t348mf$la9$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:56a:fb70:6300:1987:e4f3:1313:d73c;
posting-account=1nOeKQkAAABD2jxp4Pzmx9Hx5g9miO8y
NNTP-Posting-Host: 2001:56a:fb70:6300:1987:e4f3:1313:d73c
References: <c56c4a4c-161f-4608-9a30-756894030f29n@googlegroups.com>
<f520ba36-83fe-4ba1-a444-64c82a92559cn@googlegroups.com> <t2u1to$pin$1@newsreader4.netcologne.de>
<dd59607c-a368-4cb4-9ece-ab09c4500da2n@googlegroups.com> <afd911fb-e9f9-47df-9c06-bb7d45327ccfn@googlegroups.com>
<t31jkp$foa$1@dont-email.me> <xY35K.3389$1%.1625@fx42.iad> <t348mf$la9$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <90187e22-bc6f-48a4-802c-c736aa5e3de7n@googlegroups.com>
Subject: Re: Standardize real*8 as real(kind=real64)?
From: jsavard@ecn.ab.ca (Quadibloc)
Injection-Date: Thu, 23 Jun 2022 18:05:42 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Quadibloc - Thu, 23 Jun 2022 18:05 UTC

On Tuesday, April 12, 2022 at 10:17:23 AM UTC-6, steve kargl wrote:
> Ron Shepard wrote:

> > I think the problem people have is that it is stored in 16 bytes, so
> > there is a lot of wasted memory and/or file space.

> Then those people are blaming the wrong thing. Intel choose 4, 8, and 16-byte
> alignment in their ABIs. gfortran (and gcc) are just a tool sitting above the cpu.

If people avoid using Intel's temporary real format because it wastes space,
they would do so regardless of whether it's the compiler or the hardware that
is to blame, so I don't see how the fact that they're avoiding it means that they're
blaming the compiler.

John Savard


devel / comp.lang.fortran / Re: Standardize real*8 as real(kind=real64)?

Pages:12345
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor