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.
subroutine init_ga_line(me,length)type(grw_linearray_type),intent(out)::me!< dynamic array to initinteger,intent(in),optional::length!< initial length of the containerif(present(length))thenme%containersize=lengthelseme%containersize=zerolengthend if! deallocate ...if(allocated(me%val))&deallocate(me%val)! ... and reallocateallocate(me%val(me%containersize))me%nvals=0end subroutine init_ga_line