This is just a general question for peoples opinions on the VALUE attribute used in subroutines. I know it The VALUE attributie is sometimes necessary for interoperability with C, but my interest is what would be the benefit beyond that compared to INTENT(IN). I am assuming that it makes no sense to have both at the same time.
Below is a simple example of what I am talking about
SUBROUTINE DOUBLER(X,Y) REAL, VALUE::X REAL,INTENT(OUT)::Y Y=2.*X END SUBROUTINE
or
SUBROUTINE DOUBLER(X,Y) REAL, INTENT(IN)::X REAL,INTENT(OUT)::Y Y=2.*X END SUBROUTINE
Or another example would be:
FUNCTION DOUBLER(X) RESULT(Y) REAL, VALUE::X REAL::Y Y=2.*X END FUNCTION
or
FUNCTION DOUBLER(X) RESULT(Y) REAL::X !FUNCTION IMPLICITLY USES IN REAL::Y Y=2.*X END FUNCTION