| subroutine radar_simulator  | 
          ( | 
          real*8, intent(in)  | 
          freq,  | 
        
        
           | 
           | 
          real*8, intent(in)  | 
          k2,  | 
        
        
           | 
           | 
          integer, intent(in)  | 
          do_ray,  | 
        
        
           | 
           | 
          integer, intent(in)  | 
          use_gas_abs,  | 
        
        
           | 
           | 
          integer, intent(in)  | 
          use_mie_table,  | 
        
        
           | 
           | 
          type(mie), intent(in)  | 
          mt,  | 
        
        
           | 
           | 
          integer, intent(in)  | 
          nhclass,  | 
        
        
           | 
           | 
          type(class_param), intent(inout)  | 
          hp,  | 
        
        
           | 
           | 
          integer, intent(in)  | 
          nprof,  | 
        
        
           | 
           | 
          integer, intent(in)  | 
          ngate,  | 
        
        
           | 
           | 
          integer, intent(in)  | 
          nsizes,  | 
        
        
           | 
           | 
          real*8, dimension(nsizes), intent(in)  | 
          D,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(in)  | 
          hgt_matrix,  | 
        
        
           | 
           | 
          real*8, dimension(nhclass,nprof,ngate), intent(in)  | 
          hm_matrix,  | 
        
        
           | 
           | 
          real*8, dimension(nhclass,nprof,ngate), intent(inout)  | 
          re_matrix,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(in)  | 
          p_matrix,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(in)  | 
          t_matrix,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(in)  | 
          rh_matrix,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(out)  | 
          Ze_non,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(out)  | 
          Ze_ray,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(out)  | 
          h_atten_to_vol,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(out)  | 
          g_atten_to_vol,  | 
        
        
           | 
           | 
          real*8, dimension(nprof,ngate), intent(out)  | 
          dBZe,  | 
        
        
           | 
           | 
          real*8, dimension(ngate,nprof), optional  | 
          g_to_vol_in,  | 
        
        
           | 
           | 
          real*8, dimension(ngate,nprof), optional  | 
          g_to_vol_out  | 
        
        
           | 
          ) | 
           |  |