Merge remote-tracking branch 'origin/release-v4.5.2'
[WRF.git] / var / da / da_setup_structures / da_eigen_to_covmatrix.inc
blob5f63d8c0cebf02ba5546eed8ab067dc45f3cbf35
1 Subroutine da_Eigen_to_covmatrix(kzs, be_evec_glo, be_eval_glo, b_native)
2 !---------------------------------------------------------------------------
3 !   Recalculate native global vertical background error cov matrix:
4 !---------------------------------------------------------------------------
5    implicit none
6    
7    integer, intent(in) :: kzs
8    real   , dimension(1:kzs,1:kzs), intent(in) :: be_evec_glo
9    real   , dimension(1:kzs)                   :: be_eval_glo
10    real   , dimension(1:kzs,1:kzs), intent(out):: b_native
12    integer    :: k1, k2
14      do k1 = 1, kzs
15         do k2 = k1, kzs
16           b_native(k1,k2) = SUM( be_evec_glo(k1,:) * be_eval_glo(:) * &
17                                 be_evec_glo(k2,:) )
18         end do
19      end do
20    
21      do k1 = 2, kzs
22         do k2 = 1, k1-1
23           b_native(k1,k2) = b_native(k2,k1)
24         end do
25      end do
27 end  Subroutine da_Eigen_to_covmatrix