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