test1 Program

Uses

  • program~~test1~~UsesGraph program~test1 test1 kinds kinds program~test1->kinds module~forpca forpca program~test1->module~forpca module~forpca->kinds foreig foreig module~forpca->foreig

Calls

program~~test1~~CallsGraph program~test1 test1 proc~deallocate_tpca forpca::tpca%deallocate_tpca program~test1->proc~deallocate_tpca proc~pca forpca::tpca%pca program~test1->proc~pca proc~cmp_explained_variance forpca::tpca%cmp_explained_variance proc~pca->proc~cmp_explained_variance proc~compute_coeff forpca::tpca%compute_coeff proc~pca->proc~compute_coeff proc~compute_score forpca::tpca%compute_score proc~pca->proc~compute_score proc~initialize forpca::tpca%initialize proc~pca->proc~initialize proc~reconstruct_data forpca::tpca%reconstruct_data proc~pca->proc~reconstruct_data eig eig proc~compute_coeff->eig mask mask proc~compute_coeff->mask order order proc~compute_coeff->order svd svd proc~compute_coeff->svd

Variables

Type Attributes Name Initial
real(kind=rk), dimension(:,:), allocatable :: matrix
real(kind=rk), dimension(:,:), allocatable :: matrix_app
real(kind=rk), dimension(:,:), allocatable :: coeff
real(kind=rk), dimension(:,:), allocatable :: score
real(kind=rk), dimension(:), allocatable :: latent
real(kind=rk), dimension(:), allocatable :: explained
type(tpca) :: p

Source Code

program test1

   use kinds
   use forpca, only: tpca

   implicit none

   real(rk), dimension(:,:), allocatable :: matrix
   real(rk), dimension(:,:), allocatable :: matrix_app
   real(rk), dimension(:,:), allocatable :: coeff
   real(rk), dimension(:,:), allocatable :: score
   real(rk), dimension(:),   allocatable :: latent
   real(rk), dimension(:),   allocatable :: explained
   type(tpca)                            :: p

   allocate(matrix(5,2))
   matrix(1, 1) = 0.123_rk
   matrix(1, 2) = 0.456_rk
   matrix(2, 1) = 0.789_rk
   matrix(2, 2) = 0.234_rk
   matrix(3, 1) = 0.567_rk
   matrix(3, 2) = 0.890_rk
   matrix(4, 1) = 0.123_rk
   matrix(4, 2) = 0.678_rk
   matrix(5, 1) = 0.901_rk
   matrix(5, 2) = 0.345_rk

   call p%pca(matrix, 2, 'svd', coeff, score, latent, explained, matrix_app)

#if defined(USE_COARRAY)
   if (this_image() == 1) then
      print*, p%matrix_app(1, 1)
      print*, p%matrix_app(1, 2)
      print*, p%matrix_app(2, 1)
      print*, p%matrix_app(2, 2)
      print*, p%matrix_app(3, 1)
      print*, p%matrix_app(3, 2)
      print*, p%matrix_app(4, 1)
      print*, p%matrix_app(4, 2)
      print*, p%matrix_app(5, 1)
      print*, p%matrix_app(5, 2)
   end if
#else
   print*, p%matrix_app(1, 1)
   print*, p%matrix_app(1, 2)
   print*, p%matrix_app(2, 1)
   print*, p%matrix_app(2, 2)
   print*, p%matrix_app(3, 1)
   print*, p%matrix_app(3, 2)
   print*, p%matrix_app(4, 1)
   print*, p%matrix_app(4, 2)
   print*, p%matrix_app(5, 1)
   print*, p%matrix_app(5, 2)
#endif

   call p%finalize()

end program test1