Path: ...!eternal-september.org!feeder2.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: Wed, 23 Oct 2024 13:56:47 -0500 Organization: A noiseless patient Spider Lines: 80 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Injection-Date: Wed, 23 Oct 2024 20:56:48 +0200 (CEST) Injection-Info: dont-email.me; posting-host="12718488e3fb95f926f84e92473f53ad"; logging-data="2280706"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+DVa8/lkPP20p3EoJZugPN1aJ24rdeLBU=" User-Agent: Mozilla Thunderbird Cancel-Lock: sha1:zokGLS6eyzSciFmVZBuPCDjADUM= Content-Language: en-US In-Reply-To: Bytes: 4746 On 10/22/2024 5:21 PM, Lawrence D'Oliveiro wrote: > On Tue, 22 Oct 2024 00:07:41 -0500, Lynn McGuire wrote: > >> Here is one of my 197 common block include files, global.inc: >> >> C global.inc >> C >> C >> C 11/21/19 Lynn McGuire pmr 6299, add new ncp max used variable for chemtran > > Those are the sorts of things that belong in your version control > system. > >> ... > > What, no “implicit none”? Or do you put this in the including files? > >> integer MAX_NCP >> PARAMETER (MAX_NCP = 1000) > > All these pairs of lines can be replaced with single lines, e.g. > > integer, parameter :: MAX_NCP = 1000 > >> COMMON / GLOBAL / KTRACE, NCP, SETSTP, NDYNER, NERQQQ, LNOLIMIT, >> * do_not_call_pivf, do_not_call_adbf, >> * ne_did_not_converge, equipment_fail_count, >> * lrespect_user_pitch, do_not_call_threephs, >> * do_not_call_flai, do_not_call_liqh, >> * do_not_call_vaph, thermo_init_failed, >> * num_crude_streams, print_streams_for_each_unit, >> * do_not_call_solid_isothermal_flash, >> * ncp_max_used >> >> integer KTRACE >> integer NCP >> logical SETSTP >> integer NDYNER >> integer NERQQQ >> integer num_crude_streams >> logical LNOLIMIT >> logical do_not_call_pivf >> logical do_not_call_adbf >> logical lrespect_user_pitch >> logical do_not_call_threephs >> logical do_not_call_flai >> logical do_not_call_liqh >> logical do_not_call_vaph >> logical thermo_init_failed >> logical print_streams_for_each_unit >> logical do_not_call_solid_isothermal_flash >> C this is to record the ncp max used for chemtran since itchanges ncp on the fly >> integer ncp_max_used > > Much more concisely: > > module GLOBAL > integer :: KTRACE, NCP, SETSTP, NDYNER, NERQQQ, num_crude_streams > logical :: LNOLIMIT, do_not_call_pivf, do_not_call_adbf, lrespect_user_pitch, & > do_not_call_threephs, do_not_call_flai, do_not_call_liqh, do_not_call_vaph, & > thermo_init_failed, print_streams_for_each_unit, do_not_call_solid_isothermal_flash > integer :: ncp_max_used > ! this is to record the ncp max used for chemtran since itchanges ncp on the fly > end module GLOBAL > > Then you just do “use GLOBAL” where you need these definitions. > > etc etc BTW, my software dates before version control systems. 1965 or so to be exact. And I like change notes in my code, it helps to figure out what is going on. And some day we are going to change version control systems again. And I am not going to upgrade 850,000 lines of Fortran F77 code to F90 code just to have prettier code. I would still be here in 10 years fixing all of the bugs from that disaster. Lynn