Path: ...!feeds.phibee-telecom.net!2.eu.feeder.erje.net!feeder.erje.net!newsfeed.bofh.team!paganini.bofh.team!not-for-mail From: R Daneel Olivaw 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 19:02:23 +0200 Organization: To protect and to server Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Thu, 3 Oct 2024 17:02:23 -0000 (UTC) Injection-Info: paganini.bofh.team; logging-data="1443084"; posting-host="XBJBjenliTep7OIZ0g9xdw.user.paganini.bofh.team"; mail-complaints-to="usenet@bofh.team"; posting-account="9dIQLXBM7WM9KzA+yjdR4A"; User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 SeaMonkey/2.53.18.2 X-Notice: Filtered by postfilter v. 0.9.3 Bytes: 2728 Lines: 42 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.