PROGRAM nag_correl_ex03 ! Example Program Text for nag_correl ! NAG fl90, Release 4. NAG Copyright 2000. ! .. Use Statements .. USE nag_examples_io, ONLY : nag_std_out, nag_std_in USE nag_correl, ONLY : nag_prod_mom_correl USE nag_write_mat, ONLY : nag_write_tri_mat ! .. Implicit None Statement .. IMPLICIT NONE ! .. Intrinsic Functions .. INTRINSIC KIND ! .. Parameters .. INTEGER, PARAMETER :: wp = KIND(1.0D0) ! .. Local Scalars .. INTEGER :: i, m, n ! .. Local Arrays .. REAL (wp), ALLOCATABLE :: correl(:,:), cov(:,:), data(:,:), mean(:), & std(:), wt(:) LOGICAL, ALLOCATABLE :: var_in_correl(:) CHARACTER (6), ALLOCATABLE :: label(:) ! .. Executable Statements .. WRITE (nag_std_out,*) 'Example Program Results for nag_correl_ex03' READ (nag_std_in,*) ! Skip heading in data file READ (nag_std_in,*) m, n ALLOCATE (data(n,m),var_in_correl(m),wt(n),label(m),mean(m),std(m), & cov(m,m),correl(m,m)) ! Allocate storage READ (nag_std_in,*) wt DO i = 1, n READ (nag_std_in,*) data(i,:) END DO WRITE (nag_std_out,*) WRITE (nag_std_out,*) 'Calculations (with weights) on all the variables' WRITE (nag_std_out,*) CALL nag_prod_mom_correl(data,mean=mean,wt=wt,cov=cov,correl=correl, & std=std) WRITE (nag_std_out,*) 'Means' WRITE (nag_std_out,'(3x,5f10.4)') mean WRITE (nag_std_out,*) WRITE (nag_std_out,*) 'Standard deviations' WRITE (nag_std_out,'(3x,5f10.4)') std WRITE (nag_std_out,*) CALL nag_write_tri_mat('u',cov,format='f10.4',int_row_labels=.TRUE., & int_col_labels=.TRUE.,title= & 'The covariance matrix for all the variables') WRITE (nag_std_out,*) CALL nag_write_tri_mat('u',correl,format='f10.4',int_row_labels=.TRUE., & int_col_labels=.TRUE.,title= & 'The correlation matrix for all the variables') WRITE (nag_std_out,*) WRITE (nag_std_out,*) WRITE (nag_std_out,*) 'Calculations (unweighted) on the 2nd & &and 3rd variables of the original data' WRITE (nag_std_out,*) var_in_correl = .FALSE. var_in_correl(2) = .TRUE. var_in_correl(3) = .TRUE. label(1) = 'var. 2' label(2) = 'var. 3' CALL nag_prod_mom_correl(data,var_in_correl=var_in_correl, & mean=mean(1:2),cov=cov(1:2,1:2),correl=correl(1:2,1:2),std=std(1:2)) WRITE (nag_std_out,*) 'Means' WRITE (nag_std_out,'(8x,5f10.4)') mean(1:2) WRITE (nag_std_out,*) WRITE (nag_std_out,*) 'Standard deviations' WRITE (nag_std_out,'(8x,5f10.4)') std(1:2) WRITE (nag_std_out,*) CALL nag_write_tri_mat('u',cov(1:2,1:2),format='f10.4', & row_labels=label(1:2),col_labels=label(1:2),title= & 'The covariance matrix for the selected variables') WRITE (nag_std_out,*) CALL nag_write_tri_mat('u',correl(1:2,1:2),format='f10.4', & row_labels=label(1:2),col_labels=label(1:2),title= & 'The correlation matrix for the selected variables') DEALLOCATE (data,var_in_correl,wt,label,mean,std, & cov,correl) ! Allocate storage END PROGRAM nag_correl_ex03