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