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.
Source Code
elemental impure subroutine save(this,file_name,height,width)class(color),intent(inout)::thischaracter(len=*),intent(in),optional::file_nameinteger,intent(in),optional::height,widthtype(format_pnm)::imageinteger::height_,width_integer(ik),dimension(:,:),allocatable::pxif(present(height))thenheight_=heightelseheight_=50end if if(present(width))thenwidth_=widthelsewidth_=50end if allocate(px(height_,3*width_))px(:,1:3*width_-2:3)=this%rpx(:,2:3*width_-1:3)=this%gpx(:,3:3*width_-0:3)=this%bcall image%set_pnm(&encoding='binary',&file_format='ppm',&width=width_,&height=height_,&max_color=255,&comment=trim(this%color_name),&pixels=px&)if(present(file_name))then call image%export_pnm(trim(file_name))else call image%export_pnm('pnm_files/colors/'//trim(this%color_name))end if end subroutine save