| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(vector), | intent(in) | :: | vec_1 | |||
| real(kind=r64), | intent(in) | :: | real_2 | 
Nodes of different colours represent the following:
Solid arrows point from a procedure to one which it calls. Dashed arrows point from an interface to procedures which implement that interface. This could include the module procedures in a generic interface or the implementation in a submodule of an interface in a parent module. Where possible, edges connecting nodes are given different colours to make them easier to distinguish in large graphs.
   FUNCTION vector_times_real(vec_1, real_2)
     ! PURPOSE OF THIS SUBROUTINE:
     ! This subroutine allows for a vector to be multiplied by a
     ! scalar (real) value.  Note, this provides a convenient way
     ! to initialize a vector (i.e. Vector*0.0)
     ! METHODOLOGY EMPLOYED:
     ! Uses the multiplication operator (*) to allow for this
     ! operation.  As in:
     ! Vector=Vector1*Real_Value
      TYPE (vector) :: vector_times_real
      TYPE (vector), INTENT(IN) :: vec_1
!      REAL, INTENT(IN) :: real_2
      REAL(r64), INTENT(IN) :: real_2
      vector_times_real%x = vec_1%x * real_2
      vector_times_real%y = vec_1%y * real_2
      vector_times_real%z = vec_1%z * real_2
      RETURN
   END FUNCTION vector_times_real