codee-com/open-catalog
Auf GitHub ansehen[Fortran] Replace `if (integer)` with `if (logical)`
Open
#38 geöffnet am 24. Sept. 2024
Fortrangood first issuenew check
Repository-Metriken
- Stars
- (105 Stars)
- PR-Merge-Metriken
- (PR-Metriken ausstehend)
Beschreibung
In Fortran there is no equivalence between logical and integer variables, so 0 is not a replacement for .false., and 1 does not replace .true.. Yet, some compilers (ifort) will happily compile if (1).
Example:
if (0) write(*, *) 'Test is false'
if (1) write(*, *) 'Test is true'
A slightly more meaningful example
integer val
val = 1
if (val) write(*, *) 'Test is true'
This should be replaced by
integer val
val = 1
if (val > 0) write(*, *) 'Test is true'