updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / var / da / da_test / da_check_xtoy_adjoint_pseudo.inc
blob16d374daf83a4974b5c4d052e8e227bfd1d9824c
1 subroutine da_check_xtoy_adjoint_pseudo(iv, y, adjtest_lhs, pertile_lhs)
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
7    implicit none
9    type (iv_type), intent(in)     :: iv            ! obs. inc. vector (o-b).
10    type (y_type) , intent(inout)  :: y             ! y = h (xa)
11    real          , intent(inout)  :: adjtest_lhs, pertile_lhs   
13    integer :: n             ! Loop counter.
14    
15    if (trace_use_dull) call da_trace_entry("da_check_xtoy_adjoint_pseudo")
17    do n=iv%info(pseudo)%n1, iv%info(pseudo)%n2
18       if (iv%info(pseudo)%proc_domain(1,n)) then
19          adjtest_lhs = adjtest_lhs + &
20             (y%pseudo(n)%u/typical_u_rms)**2 + &
21             (y%pseudo(n)%v/typical_v_rms)**2 + &
22             (y%pseudo(n)%t/typical_t_rms)**2 + &
23             (y%pseudo(n)%p/typical_p_rms)**2 + &
24             (y%pseudo(n)%q/typical_q_rms)**2
25       end if
27       pertile_lhs = pertile_lhs + &
28          (y%pseudo(n)%u/typical_u_rms)**2 + &
29          (y%pseudo(n)%v/typical_v_rms)**2 + &
30          (y%pseudo(n)%t/typical_t_rms)**2 + &
31          (y%pseudo(n)%p/typical_p_rms)**2 + &
32          (y%pseudo(n)%q/typical_q_rms)**2
34       y%pseudo(n)%u = y%pseudo(n)%u/typical_u_rms**2
35       y%pseudo(n)%v = y%pseudo(n)%v/typical_v_rms**2
36       y%pseudo(n)%t = y%pseudo(n)%t/typical_t_rms**2
37       y%pseudo(n)%p = y%pseudo(n)%p/typical_p_rms**2
38       y%pseudo(n)%q = y%pseudo(n)%q/typical_q_rms**2
39    end do
40    
41    if (trace_use_dull) call da_trace_exit("da_check_xtoy_adjoint_pseudo")
43 end subroutine da_check_xtoy_adjoint_pseudo