Merge remote-tracking branch 'origin/release-v4.5.2'
[WRF.git] / var / da / da_obs / da_set_3d_obs_missing.inc
blob10187cee664efd39b57ea36855d6419b63e89d5b
1 subroutine da_set_3d_obs_missing (iv, n)
3    !-----------------------------------------------------------------------
4    ! Purpose: TBD
5    !-----------------------------------------------------------------------
7    implicit none
9    type(iv_type), intent(inout) :: iv
10    integer,       intent(in)    :: n    ! obs index
12    integer :: i, k
13    real    :: xmiss
15    if (trace_use) call da_trace_entry("da_set_obs_missing")
17    xmiss = -888.0
19    select case (n)
20    case (radar)
21       do i = 1, iv%info(n)%nlocal
22         do k=1,iv%info(n)%levels(i)
23          if ( iv%info(n)%thinned(k,i) ) then
24             iv%radar(i)%height(k) = missing_r
25             iv%radar(i)%height_qc(k) = missing_data
26             iv%radar(i)%rv(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
27             iv%radar(i)%rf(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
28          end if
29         end do
30       end do
31    case (airep)
32       do i = 1, iv%info(n)%nlocal
33         do k=1,iv%info(n)%levels(i)
34          if ( iv%info(n)%thinned(k,i) ) then
35             iv%airep(i)%h(k) = missing_r
36             iv%airep(i)%p(k) = missing_r
37             iv%airep(i)%u(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
38             iv%airep(i)%v(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
39             iv%airep(i)%t(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
40             iv%airep(i)%q(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
41          end if
42         end do
43       end do
44    case (tamdar)
45       do i = 1, iv%info(n)%nlocal
46         do k=1,iv%info(n)%levels(i)
47          if ( iv%info(n)%thinned(k,i) ) then
48             iv%tamdar(i)%h(k) = missing_r
49             iv%tamdar(i)%p(k) = missing_r
50             iv%tamdar(i)%u(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
51             iv%tamdar(i)%v(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
52             iv%tamdar(i)%t(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
53             iv%tamdar(i)%q(k) = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
54          end if
55         end do
56       end do
57    case (tamdar_sfc)
58       do i = 1, iv%info(n)%nlocal
59          if ( iv%info(n)%thinned(1,i) ) then
60             iv%tamdar_sfc(i)%h = missing_r
61             iv%tamdar_sfc(i)%u = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
62             iv%tamdar_sfc(i)%v = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
63             iv%tamdar_sfc(i)%t = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
64             iv%tamdar_sfc(i)%p = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
65             iv%tamdar_sfc(i)%q = field_type(missing_r, missing_data, xmiss, missing_r, missing_r)
66          end if
67       end do
68    case default
69       write(unit=message(1),fmt='(A,I4)') 'Wrong obs_index= ',n
70       call da_error(__FILE__,__LINE__,message(1:1))
71    end select
73    if (trace_use) call da_trace_exit("da_set_3d_obs_missing")
75 end subroutine da_set_3d_obs_missing