da_initialize_rad_iv.inc

References to this file elsewhere.
1 subroutine da_initialize_rad_iv (i, n, iv, p)
2 
3    !---------------------------------------------------------------------------
4    !  Purpose: allocate radiance innovation structure
5    !---------------------------------------------------------------------------
6 
7    use da_control
8 
9    implicit none
10 
11    integer,             intent(in)    :: i, n
12    type(datalink_type), intent(in)    :: p
13    type(iv_type),       intent(inout) :: iv
14 
15    call da_trace_entry("da_initialize_rad_iv")
16 
17    iv%instid(i)%info%lat(:,n)   = p%info%lat
18    iv%instid(i)%info%lon(:,n)   = p%info%lon
19    iv%instid(i)%info%elv(n)     = p%info%elv
20    iv%instid(i)%info%date_char(n) = p%info%date_char
21 
22    iv%instid(i)%info%max_lev    = iv%instid(i)%nlevels
23    iv%instid(i)%info%levels(n)  = iv%instid(i)%nlevels
24    iv%instid(i)%info%i  (:,n)   = p%loc%i
25    iv%instid(i)%info%j  (:,n)   = p%loc%j
26    iv%instid(i)%info%k  (:,n)   = 0
27    iv%instid(i)%info%dx (:,n)   = p%loc%dx
28    iv%instid(i)%info%dy (:,n)   = p%loc%dy
29    iv%instid(i)%info%dz (:,n)   = 0.0
30    iv%instid(i)%info%dxm(:,n)   = p%loc%dxm
31    iv%instid(i)%info%dym(:,n)   = p%loc%dym
32    iv%instid(i)%info%dzm(:,n)   = 0.0
33    iv%instid(i)%info%proc_domain(:,n) = .false.
34    ! z done in da_get_innov_vector_rad
35    iv%instid(i)%t(:,n)          = 0.0
36    iv%instid(i)%mr(:,n)         = 0.0
37    iv%instid(i)%tm(:,n)         = 0.0
38    iv%instid(i)%qm(:,n)         = 0.0
39    iv%instid(i)%qrn(:,n)        = 0.0
40    iv%instid(i)%qcw(:,n)        = 0.0
41    iv%instid(i)%qci(:,n)        = 0.0
42    iv%instid(i)%qsn(:,n)        = 0.0
43    iv%instid(i)%qgr(:,n)        = 0.0
44    iv%instid(i)%qhl(:,n)        = 0.0
45    iv%instid(i)%rcw(:,n)        = 0.0
46    iv%instid(i)%rci(:,n)        = 0.0
47    iv%instid(i)%rrn(:,n)        = 0.0
48    iv%instid(i)%rsn(:,n)        = 0.0
49    iv%instid(i)%rgr(:,n)        = 0.0
50    iv%instid(i)%rhl(:,n)        = 0.0
51    iv%instid(i)%pm(:,n)         = 0.0
52    iv%instid(i)%u10(n)          = 0.0
53    iv%instid(i)%v10(n)          = 0.0
54    iv%instid(i)%t2m(n)          = 0.0
55    iv%instid(i)%q2m(n)          = 0.0
56    iv%instid(i)%mr2m(n)         = 0.0
57    iv%instid(i)%psfc(n)         = 0.0
58    iv%instid(i)%ts(n)           = 0.0
59    iv%instid(i)%smois(n)        = 0.0
60    iv%instid(i)%tslb(n)         = 0.0
61    iv%instid(i)%snowh(n)        = 0.0
62    iv%instid(i)%isflg(n)        = 0
63    iv%instid(i)%soiltyp(n)      = 0.0
64    iv%instid(i)%landsea_mask(n) = p%landsea_mask
65    iv%instid(i)%elevation(n)    = 0.0
66    iv%instid(i)%vegfra(n)       = 0.0
67    iv%instid(i)%vegtyp(n)       = 0.0
68    iv%instid(i)%clwp(n)         = 0.0
69    iv%instid(i)%ps(n)           = 0.0
70    iv%instid(i)%tb_xb(:,n)      = 0
71    iv%instid(i)%tb_inv(:,n)     = p%tb_inv(:)
72    iv%instid(i)%tb_qc(:,n)      = 0
73    iv%instid(i)%tb_error(:,n)   = 500.0
74    iv%instid(i)%emiss(:,n)      = 0.0
75    iv%instid(i)%scanpos(n)      = p%scanpos
76    ! iv%instid(i)%scanline(n)    = p%scanline
77    iv%instid(i)%scanline(n)     = 0
78    iv%instid(i)%ifgat(n)        = p%ifgat
79    iv%instid(i)%cloud_flag(:,n) = 1        ! no cloud
80    iv%instid(i)%satzen(n)       = p%satzen
81    iv%instid(i)%satazi(n)       = p%satazi
82    iv%instid(i)%solzen(n)       = p%solzen
83    ! iv%instid(i)%solazi(n)     = p%solazi
84    iv%instid(i)%solazi(n)       = 0.0
85 
86    if (rtm_option == rtm_option_crtm) then
87       iv%instid(i)%water_coverage(n)=1.0
88       iv%instid(i)%land_coverage(n)=0.0
89       iv%instid(i)%ice_coverage(n)=0.0
90       iv%instid(i)%snow_coverage(n)=0.0
91       if (use_crtm_kmatrix) then
92       !  iv%instid(i)%ts_jacobian(:,n)=0.0
93       !  iv%instid(i)%windspeed_jacobian(:,n)=0.0
94       !  iv%instid(i)%emiss_jacobian(:,n)=0.0
95       !  iv%instid(i)%t_jacobian(:,:,n)=0.0
96       !  iv%instid(i)%q_jacobian(:,:,n)=0.0
97       !  iv%instid(i)%water_jacobian(:,:,n)=0.0
98       !  iv%instid(i)%ice_jacobian(:,:,n)=0.0
99       !  iv%instid(i)%rain_jacobian(:,:,n)=0.0
100       !  iv%instid(i)%snow_jacobian(:,:,n)=0.0
101       !  iv%instid(i)%graupel_jacobian(:,:,n)=0.0
102       !  iv%instid(i)%hail_jacobian(:,:,n)=0.0
103       !  iv%instid(i)%water_r_jacobian(:,:,n)=0.0
104       !  iv%instid(i)%ice_r_jacobian(:,:,n)=0.0
105       !  iv%instid(i)%rain_r_jacobian(:,:,n)=0.0
106       !  iv%instid(i)%snow_r_jacobian(:,:,n)=0.0
107       !  iv%instid(i)%graupel_r_jacobian(:,:,n)=0.0
108       !  iv%instid(i)%hail_r_jacobian(:,:,n)=0.0
109       end if
110    end if
111 
112    call da_trace_exit("da_initialize_rad_iv")
113 
114 end subroutine da_initialize_rad_iv
115