I noticed the following line in the semantic-f90.el:
(modify-syntax-entry ?& " " f90-mode-syntax-table)
This causes the & to be considered whitespace. This causes some issues if you cleanup trailing whitespace.
Suppose you have the following line:
a = 1 + &
In this case after a delete-trailing-whitespace, the & will be deleted, which is incorrect.
a = 1 +
1 ! Invalid code
I think that it can be considered an escape character (if placed at the end of a line). Perhaps when placed at the start of the line (after optional whitespace), it can be considered extra whitespace.