Path: ...!news.roellig-ltd.de!open-news-network.org!weretis.net!feeder8.news.weretis.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail From: Lynn McGuire Newsgroups: comp.lang.fortran Subject: Re: Is there a way in Fortran to designate an integer value as integer*8 ? Date: Thu, 3 Oct 2024 14:34:01 -0500 Organization: A noiseless patient Spider Lines: 50 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 03 Oct 2024 21:34:02 +0200 (CEST) Injection-Info: dont-email.me; posting-host="c9d2a493dbaff3b5cb3f1cd359d149a2"; logging-data="4049447"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+BD5OFMY8ts0aMwMG9scQTCgZIbma2y1Y=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:J0uspIY0OEtsyct+AZbF8k/4gqE= Content-Language: en-US In-Reply-To: Bytes: 3117 On 10/3/2024 12:02 PM, R Daneel Olivaw wrote: > Steven G. Kargl wrote: >> On Thu, 03 Oct 2024 14:45:31 +0200, R Daneel Olivaw wrote: >> >>> Lynn McGuire wrote: >>>> I need many of my integers to be integer*8 in my port to 64 bit.  In >>>> C/C++ code, I can say 123456L to mean a long long value, generally 64 >>>> bit.  Is there a corresponding way to do this in Fortran or am I stuck >>>> with: >>>> >>>>       call xyz (1) >>>> >>>>       subroutine xyz (ivalue) >>>>       integer*8 ivalue >>>>       ... >>>>       return end >>>> >>>> must be: >>>> >>>>       integer*8 ivalue >>>>       ... >>>>       ivalue = 1 >>>>       call xyz (ivalue) >>>> >>> >>> This is not actually a Fortran issue as such, it's all about a specific >>> compiler (GNU Fortran). >> >> If we overlook the nonstandard type in the declaration, and agree >> that the compiler will accept 'integer*8', then the program is >> still invalid Fortran.  It's technically not a Fortran issue.  It >> is a programmer issue. >> > > Take a pragmatic approach, if that's the way the compiler wants you to > do it then do it that way. > Years ago I was converting a suite of programs from one OS/hardware > platform to another.  One program had serious problems because type > "real" had insufficient precision on the new machine, that machine > offered a compile option which meant "real" automatically meant "double > precision" and - after checking for "equivalence" and common" statements > - that's the way I went.  Problem solved.  This was back in the days of > Fortran IV but I don't think I've ever seen anyone assigning Hollerith > values to Real numbers so that was not a problem either. My code used to assign Hollerith to Real numbers but I ripped that out years ago in a project to get rid of Hollerith. Lynn