get_prototypes Subroutine

public subroutine get_prototypes(kohonen_map, prototypes)

Subroutine to get SOM prototypes

Type Bound

self_organizing_map

Arguments

Type IntentOptional Attributes Name
class(self_organizing_map) :: kohonen_map

A self_organizing_map object

real(kind=wp), intent(out), dimension(:,:) :: prototypes

A real array to return the values of the SOM prototypes


Calls

proc~~get_prototypes~~CallsGraph proc~get_prototypes self_organizing_map%get_prototypes none~get_prototype kohonen_prototype%get_prototype proc~get_prototypes->none~get_prototype

Variables

Type Visibility Attributes Name Initial
integer, public :: i
integer, public :: j
integer, public :: k
integer, public :: pos
integer, public :: nvar1
integer, public :: nvar2
integer, public, dimension(1) :: nvar
real(kind=wp), public, dimension(kohonen_map%parameters%number_variables1, kohonen_map%parameters%number_variables2) :: current_prototype
real(kind=wp), public, dimension(kohonen_map%parameters%number_variables1* kohonen_map%parameters%number_variables2) :: current_prototype1

Source Code

    subroutine get_prototypes(kohonen_map,prototypes)
!========================================================================================
!! Subroutine to get SOM prototypes
        class(self_organizing_map) :: kohonen_map
!! A `self_organizing_map` object 
        real(kind=wp),dimension(:,:),intent(out) :: prototypes
!! A real array to return the values of the SOM prototypes
        integer :: i,j,k,pos,nvar1,nvar2
        integer,dimension(1) :: nvar
        real(kind=wp),dimension(kohonen_map%parameters%number_variables1,&
                    kohonen_map%parameters%number_variables2) :: current_prototype
        real(kind=wp),dimension(kohonen_map%parameters%number_variables1*&
                    kohonen_map%parameters%number_variables2) :: current_prototype1
      !
        nvar1=kohonen_map%parameters%number_variables1;
        nvar2=kohonen_map%parameters%number_variables2;
        nvar(1)=nvar1*nvar2
        pos=0;
        do k=1,size(kohonen_map%grid,3)
            do j=1,size(kohonen_map%grid,2);
                do i=1,size(kohonen_map%grid,1);
                    pos=pos+1;
                    call kohonen_map%grid(i,j,k)%get_prototype(current_prototype);
                    current_prototype1(1:nvar1*nvar2)=reshape(current_prototype,nvar)
                    prototypes(pos,:)=current_prototype1;
                enddo
            enddo
        enddo
!
    end subroutine get_prototypes