36 nhclass,hp,nprof,ngate,nsizes,d,hgt_matrix,hm_matrix,re_matrix,p_matrix,t_matrix, &
37 rh_matrix,ze_non,ze_ray,h_atten_to_vol,g_atten_to_vol,dbze, &
38 g_to_vol_in,g_to_vol_out)
47 type(
mie),
intent(in) :: mt
49 real*8,
intent(in) :: freq,k2
50 integer,
intent(in) :: do_ray,use_gas_abs,use_mie_table, &
51 nhclass,nprof,ngate,nsizes
52 real*8,
dimension(nsizes),
intent(in) :: D
53 real*8,
dimension(nprof,ngate),
intent(in) :: hgt_matrix, p_matrix, &
55 real*8,
dimension(nhclass,nprof,ngate),
intent(in) :: hm_matrix
56 real*8,
dimension(nhclass,nprof,ngate),
intent(inout) :: re_matrix
58 real*8,
dimension(nprof,ngate),
intent(out) :: Ze_non,Ze_ray, &
59 g_atten_to_vol,dBZe,h_atten_to_vol
61 real*8,
optional,
dimension(ngate,nprof) :: &
62 g_to_vol_in,g_to_vol_out
88 real*8,
dimension(:,:),
allocatable :: &
91 real*8,
dimension(:,:),
allocatable :: &
102 real*8,
dimension(:,:,:),
allocatable :: &
106 integer,
parameter :: one = 1
107 logical :: hgt_reversed
108 integer :: pr,i,j,k,unt
112 freq = gbx%radar_freq
122 allocate(hgt_matrix(gbx%Npoints,gbx%Nlevels),p_matrix(gbx%Npoints,gbx%Nlevels), &
123 t_matrix(gbx%Npoints,gbx%Nlevels),rh_matrix(gbx%Npoints,gbx%Nlevels))
124 allocate(hm_matrix(gbx%Nhydro,gbx%Npoints,gbx%Nlevels))
125 allocate(re_matrix(gbx%Nhydro,gbx%Npoints,gbx%Nlevels))
128 allocate(ze_non(gbx%Npoints,gbx%Nlevels))
129 allocate(ze_ray(gbx%Npoints,gbx%Nlevels))
130 allocate(h_atten_to_vol(gbx%Npoints,gbx%Nlevels))
131 allocate(g_atten_to_vol(gbx%Npoints,gbx%Nlevels))
132 allocate(dbze(gbx%Npoints,gbx%Nlevels))
136 allocate(g_to_vol(gbx%Nlevels,gbx%Npoints))
138 p_matrix = gbx%p/100.0
139 hgt_matrix = gbx%zlev/1000.0
140 t_matrix = gbx%T-273.15
145 call order_data(hgt_matrix,hm_matrix,p_matrix,t_matrix, &
146 rh_matrix,gbx%surface_radar,hgt_reversed)
152 if (hgt_reversed)
then
154 hm_matrix(i,:,:) = sghydro%mr_hydro(:,pr,gbx%Nlevels:1:-1,i)*1000.0
155 if (gbx%use_reff)
then
156 re_matrix(i,:,:) = sghydro%Reff(:,pr,gbx%Nlevels:1:-1,i)*1.e6
161 hm_matrix(i,:,:) = sghydro%mr_hydro(:,pr,:,i)*1000.0
162 if (gbx%use_reff)
then
163 re_matrix(i,:,:) = sghydro%Reff(:,pr,:,i)*1.e6
171 if (gbx%Npoints == 53)
then
175 if (gbx%Npoints == 153)
then
179 call radar_simulator(freq,k2,gbx%do_ray,gbx%use_gas_abs,gbx%use_mie_tables,gbx%mt, &
180 gbx%Nhydro,gbx%hp,gbx%Npoints,gbx%Nlevels,gbx%nsizes,gbx%D, &
181 hgt_matrix,hm_matrix,re_matrix,p_matrix,t_matrix,rh_matrix, &
182 ze_non,ze_ray,h_atten_to_vol,g_atten_to_vol,dbze,g_to_vol_out=g_to_vol)
184 call radar_simulator(freq,k2,gbx%do_ray,gbx%use_gas_abs,gbx%use_mie_tables,gbx%mt, &
185 gbx%Nhydro,gbx%hp,gbx%Npoints,gbx%Nlevels,gbx%nsizes,gbx%D, &
186 hgt_matrix,hm_matrix,re_matrix,p_matrix,t_matrix,rh_matrix, &
187 ze_non,ze_ray,h_atten_to_vol,g_atten_to_vol,dbze,g_to_vol_in=g_to_vol)
191 if (gbx%surface_radar == 1)
then
192 z%Ze_tot(:,pr,:)=dbze(:,:)
193 else if (gbx%surface_radar == 0)
then
194 z%Ze_tot(:,pr,:)=dbze(:,gbx%Nlevels:1:-1)
200 where (z%Ze_tot == -999.0) z%Ze_tot =
r_undef
202 deallocate(hgt_matrix,p_matrix,t_matrix,rh_matrix)
203 deallocate(hm_matrix,re_matrix, &
204 ze_non,ze_ray,h_atten_to_vol,g_atten_to_vol,dbze)
real *8, dimension(:), allocatable, save mt_tti
real *8, dimension(:), allocatable, save mt_ttl
subroutine cosp_radar(gbx, sgx, sghydro, z)