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