da_calculate_grady_rad.inc

References to this file elsewhere.
1 
2 subroutine da_calculate_grady_rad( iv, re, jo_grad_y ) 
3 !------------------------------------------------------------------------------
4 !  Purpose: Calculate Gradient_y for radiance data.
5 !
6 !  METHOD:  grad_y = -R^-1 (d - H delta_x ).
7 !
8 !  HISTORY: 08/2005 - Creation            Zhiquan Liu
9 !
10 !------------------------------------------------------------------------------
11    implicit none
12 
13    type (ob_type), intent(in)    :: iv          ! Innovation vector.
14    type (y_type) , intent(in)    :: re          ! Residual vector.
15    type (y_type) , intent(inout) :: jo_grad_y   ! Grad_y(Jo)
16 
17    integer                       :: n, k, i
18 
19    if ( iv%num_inst < 1 ) RETURN
20 
21    if (trace_use) call da_trace_entry("da_calculate_grady_rad")
22 
23    do i =1, iv%num_inst
24       if ( iv%instid(i)%num_rad < 1 .or. iv%instid(i)%rad_monitoring == monitor_on ) cycle
25       do n=1, iv%instid(i)%num_rad
26          do k=1, iv%instid(i)%nchan
27             jo_grad_y%instid(i)%tb(k,n) = -re%instid(i)%tb(k,n) / &
28                                       ( iv%instid(i)%tb_error(k,n) * &
29                                         iv%instid(i)%tb_error(k,n) )
30          end do
31       end do
32    end do
33 
34    if (trace_use) call da_trace_exit("da_calculate_grady_rad")
35 
36 end subroutine da_calculate_grady_rad
37