Topic: SF Smart Indent?
Jeff,
Is it possible to revised SF Smart Indent so that it indents ELSEIF contents correctly?
!--- For example, using Smart Indent produces the following code:
PROGRAM SMART_INDENT
IMPLICIT NONE
INTEGER, PARAMETER :: SP = KIND(1.E0)
INTEGER :: IFLAG
REAL(KIND=SP) :: X
REAL(KIND=SP), PARAMETER :: r1 = 1.0
REAL(KIND=SP), PARAMETER :: r2 = 2.0
REAL(KIND=SP), PARAMETER :: r3 = 3.0
REAL(KIND=SP), PARAMETER :: r4 = 4.0
X = r1
!--- TEST SMART INDENT
IF (X == r1) THEN
!--- r1
IFLAG = -1
ELSEIF (X == r2) THEN
!--- r2
IFLAG = +1
ELSEIF (X == r3) THEN
!--- r3
IFLAG = 2
ELSEIF (X == r4) THEN
!--- r4
IFLAG = 2
ELSE
!--- ?
IFLAG = 0
END IF
WRITE(*,"(1X,A,1X,I2)") "IFLAG=", IFLAG
RETURN
END PROGRAM SMART_INDENT
!--- Original Code prior to Smart Indent:
PROGRAM SMART_INDENT
IMPLICIT NONE
INTEGER, PARAMETER :: SP = KIND(1.E0)
INTEGER :: IFLAG
REAL(KIND=SP) :: X
REAL(KIND=SP), PARAMETER :: r1 = 1.0
REAL(KIND=SP), PARAMETER :: r2 = 2.0
REAL(KIND=SP), PARAMETER :: r3 = 3.0
REAL(KIND=SP), PARAMETER :: r4 = 4.0
X = r1
!--- TEST SMART INDENT
IF (X == r1) THEN
!--- r1
IFLAG = -1
ELSEIF (X == r2) THEN
!--- r2
IFLAG = +1
ELSEIF (X == r3) THEN
!--- r3
IFLAG = 2
ELSEIF (X == r4) THEN
!--- r4
IFLAG = 2
ELSE
!--- ?
IFLAG = 0
END IF
WRITE(*,"(1X,A,1X,I2)") "IFLAG=", IFLAG
RETURN
END PROGRAM SMART_INDENT
Frank