da_radiance.f90
References to this file elsewhere.
1 module da_radiance
2
3 !---------------------------------------------------------------------------
4 ! Purpose: module for radiance data assimilation.
5 !---------------------------------------------------------------------------
6
7 use module_domain, only : xpose_type, xb_type
8 use module_radiance, only : satinfo, coefs_scatt_instname, &
9 time_slots, &
10 i_kind,r_kind, r_double, &
11 one, zero, three,deg2rad,rad2deg, &
12 n_scatt_coef,q2ppmv, &
13 init_constants_derived, gsi_emiss
14 #ifdef RTTOV
15 use module_radiance, only : coefs,coefs_scatt,profile_type,radiance_type, &
16 rttov_coef,sensor_descriptor,platform_name,inst_name,transmission_type, &
17 errorstatus_success,gas_id_watervapour
18 #endif
19 #ifdef CRTM
20 use module_radiance, only : crtm_channelinfo_type, crtm_platform_name, &
21 crtm_sensor_name, crtm_init
22 #endif
23
24 #ifdef DM_PARALLEL
25 use mpi, only : mpi_integer, mpi_status_size
26 #endif
27
28 use da_control, only : max_ob_levels,missing_r, &
29 v_interp_p, v_interp_h, &
30 missing, max_error_uv, max_error_t, rootproc, &
31 max_error_p,max_error_q, &
32 max_stheight_diff,missing_data,max_error_bq,max_error_slp, &
33 max_error_bt, max_error_buv, rtminit_platform,rtminit_satid, &
34 rtminit_nsensor,rtminit_sensor,filename_len,read_biascoef,analysis_date, &
35 time_window_max,time_window_min,print_detail_obs,use_hsbobs,use_msuobs, &
36 use_amsubobs,use_eos_amsuaobs,use_amsuaobs,use_hirs2obs,rtm_option, &
37 rtm_option_rttov,rtm_option_crtm,use_airsobs,use_kma1dvar,use_hirs3obs, &
38 use_filtered_rad,print_detail_radiance,stderr, mw_emis_sea, &
39 rtminit_print, rttov_scatt,comm,ierr,biasprep, qc_rad, num_procs, &
40 tovs_min_transfer,use_error_factor_rad,num_fgat_time,stdout,trace_use, &
41 qc_good, qc_bad,myproc,biascorr
42 use da_crtm, only : da_crtm_init
43 use da_define_structures, only : maxmin_type, ob_type, y_type, jo_type, &
44 bad_data_type, x_type, number_type, bad_data_type, &
45 airsr_type,info_type, model_loc_type
46 use da_interpolation, only : da_interp_lin_3d, da_to_zk, &
47 da_interp_lin_3d_adj,da_interp_obs_lin_2d,da_interp_obs_lin_2d_adj, &
48 da_interp_lin_2d, da_interp_lin_2d_adj,da_interp_lin_2d_new, &
49 da_interp_lin_3d_new, da_interp_lin_3d_adj_new, &
50 da_to_zk_new, da_interp_lin_2d_adj_new
51 use da_tools1, only : da_get_unit, da_free_unit
52 use da_par_util1, only : da_proc_sum_int,da_proc_sum_ints
53 #ifdef DM_PARALLEL
54 use da_par_util, only : da_proc_stats_combine, true_mpi_real
55 #else
56 use da_par_util, only : da_proc_stats_combine
57 #endif
58 use da_physics, only : da_sfc_pre, da_transform_xtopsfc, &
59 da_transform_xtopsfc_adj,da_tpq_to_slp_lin,da_tpq_to_slp_adj
60 use da_radiance1, only : num_tovs_before,num_tovs_after,tovs_copy_count, &
61 tovs_send_pe, tovs_recv_pe, tovs_send_start, tovs_send_count, &
62 tovs_recv_start,con_vars_type,aux_vars_type, datalink_type,da_qc_amsub, &
63 da_qc_amsua,da_biascorr, da_detsurtyp,da_biasprep,da_get_time_slots, &
64 da_get_julian_time,da_qc_rad,da_status_rad
65 use da_reporting, only : da_message, da_warning, message, da_error
66 use da_rttov, only : da_rttov_init
67 use da_statistics, only : da_stats_calculate
68 use da_tools, only : da_max_error_qc, da_residual, da_obs_sfc_correction, &
69 da_ll_to_xy, da_togrid_new
70 use da_tracing, only : da_trace_entry, da_trace_exit, da_trace, &
71 da_trace_int_sort
72 use da_wrf_interfaces, only : wrf_dm_bcast_integer
73
74 implicit none
75
76 contains
77
78 #include "da_calculate_grady_rad.inc"
79 #include "da_read_filtered_rad.inc"
80 #include "da_write_filtered_rad.inc"
81 #include "da_read_bufrtovs.inc"
82 #include "da_read_bufrairs.inc"
83 #include "da_read_kma1dvar.inc"
84 #include "da_sort_rad.inc"
85 #include "da_setup_bufrtovs_structures.inc"
86
87 end module da_radiance
88