INTENT attribute
Standard: F77 F90 F95 F2003
  Example Program
type , INTENT(intent-spec) [ , attr ]... :: decl-list

INTENT(intent-spec) [ :: ] name [ , name ]...

intent-spec ::= IN  |  INOUT  |  OUT

The INOUT keyword may also be spelled as two separate words, IN OUT.
Declares that those dummy arguments have the specified intent. An INTENT(IN) argument cannot appear in any context where it will be modified; an INTENT(OUT) argument becomes undefined on entry to the procedure (if the type of the argument has default initialisation, that will be applied). Both INTENT(INOUT) and INTENT(OUT) require the actual argument to be a variable (i.e. not an expression).
In Fortran 2003, the INTENT attribute is permitted for pointers. A pointer with INTENT(IN) is permitted to have its value changed if it is associated with a target, but is not permitted to have its pointer association status changed (i.e. it cannot be allocated, associated, deallocated or nullified). An INTENT(OUT) pointer has its association status become undefined on entry to the procedure.
ENTRY statement, FUNCTION statement, SUBROUTINE statement, Type Declaration statement