They have section A.9
A.9 Fortran 2008 deprecated features
In this section we describe features that were new in Fortran 2008, but are considered by us
to be redundant.
which lists the following features:
A.9.1 The sync memory statement, and atomic_define and atomic_ref
A.9.2 Components of type c_ptr or c_funptr
A.9.3 Type declarations
A.9.4 Denoting absent arguments
A.9.5 Alternative form of complex constant
The following section is
B. Obsolescent and deleted features
B.1 Features obsolescent in Fortran 95
The features of this section are described by the Fortran 95 standard to be obsolescent. Their
replacements are described in the relevant subsections.
I think it is unlikely that the committee would remove a feature introduced as recently as 2008 unless it were an outright bug.
In section A.9.4, the authors give an example of absent optional denotation:
subroutine top(x, a, b)
real :: x
real, optional, target :: a(:), b(:)
real, allocatable :: worka(:), workb1(:), workb2(:)
real, pointer :: pivotptr
! (Code to conditionally allocate worka etc. elided.)
call process_work(x, worka, workb1, workb2, pivot)
end subroutine
subroutine process_work(x, wa, wb1, wb2, pivot)
real :: x
real, optional :: wa(:), wb1(:) , wb2(:), pivot
and show that without the feature, calling process_work would be awkward:
if (allocated(worka)) then
if (allocated(workb1)) then
if (allocated(workb2)) then
if (associated(pivot)) then
call process_work(x, worka, workb1, workb2, pivot)
else
call process_work(x, worka, workb1, workb2)
end if
else if (associated(pivot)) then
call process_work(x, worka, workb1, pivotptr=pivot)
else
call process_work(x, worka, workb1)
end if
! (Remainder of huge nested if construct elided.)