For a code with an arithmetic IF, for example program xx implicit none integer :: i i = 0 if (i) 10,20,30 10 print*,"negative" stop 20 print*,"zero" stop 30 print*,"positive" stop end program xx
mingw gfortran 4.3.0 20061021 says In file xarithmetic_if.f90:5 if (i) 10,20,30 1 Warning: Obsolete: arithmetic IF statement at (1) According to the Fortran 95 Handbook the arithmetic IF is "obsolescent", not "obsolete". The Fortran 2003 standard lists the following features as "obsolescent" in section B.2, "Obsolescent features". 5 (1) Arithmetic IF use the IF statement (8.1.2.4) or IF construct (8.1.2). 6 (2) Shared DO termination and termination on a statement other than END DO or CON7 TINUE use an END DO or a CONTINUE statement for each DO statement. 8 (3) Alternate return see B.2.1. 9 (4) Computed GO TO statement see B.2.2. 10 (5) Statement functions see B.2.3. 11 (6) DATA statements amongst executable statements see B.2.4. 12 (7) Assumed length character functions see B.2.5. 13 (8) Fixed form source see B.2.6. 14 (9) CHARACTER* form of CHARACTER declaration see B.2.7. Gfortran should use the term "obsolescent" rather than "obsolete" for all of these features. I have only looked at arithmetic IF. -- Summary: "obsolescent" vs. "obsolete" Product: gcc Version: 4.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: vivekrao4 at yahoo dot com http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30681