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 : xb_type, domain
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, trace_use_dull, &
30       missing, max_error_uv, max_error_t, rootproc, &
31       max_error_p,max_error_q, radiance, &
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_ssmisobs, use_filtered_rad,print_detail_rad,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,thinning,thinning_mesh, &
42       rad_monitoring, monitor_on, kms,kme,&
43       use_hirs4obs, use_mhsobs,bufr_year, bufr_month,bufr_day,bufr_hour, &
44       bufr_minute, bufr_second,bufr_solzen, bufr_station_height, &
45       bufr_landsea_mask,tovs_end, max_tovs_input, bufr_satzen, nchan_mhs, &
46       nchan_msu, nchan_amsua,nchan_hirs2, nchan_hirs3, nchan_hirs4, bufr_lon, &
47       bufr_satellite_id, bufr_ifov,nchan_amsub, tovs_start, bufr_lat
48 #ifdef CRTM
49    use da_crtm, only : da_crtm_init
50 #endif
51    use da_define_structures, only : maxmin_type, iv_type, y_type, jo_type, &
52       bad_data_type, x_type, number_type, bad_data_type, &
53       airsr_type,info_type, model_loc_type
54    use da_interpolation, only : da_to_zk, da_to_zk_new
55    use da_tools_serial, only : da_get_unit, da_free_unit
56    use da_par_util1, only : da_proc_sum_int,da_proc_sum_ints
57 #ifdef DM_PARALLEL
58    use da_par_util, only :  da_proc_stats_combine, true_mpi_real
59 #else
60    use da_par_util, only :  da_proc_stats_combine
61 #endif
62    use da_physics, only : da_sfc_pre, da_transform_xtopsfc, &
63       da_transform_xtopsfc_adj,da_tpq_to_slp_lin,da_tpq_to_slp_adj
64    use da_radiance1, only : num_tovs_before,num_tovs_after,tovs_copy_count, &
65       tovs_send_pe, tovs_recv_pe, tovs_send_start, tovs_send_count, &
66       tovs_recv_start,con_vars_type,aux_vars_type, datalink_type,da_qc_amsub, &
67       da_qc_amsua,da_biascorr, da_detsurtyp,da_biasprep,da_get_time_slots, &
68       da_get_julian_time,da_qc_rad
69    use da_reporting, only : da_message, da_warning, message, da_error
70    use da_rttov, only : da_rttov_init
71    use da_statistics, only : da_stats_calculate
72    use da_tools, only : da_residual, da_obs_sfc_correction, &
73       da_llxy, da_llxy_new, da_togrid_new
74    use da_tracing, only : da_trace_entry, da_trace_exit, da_trace, &
75       da_trace_int_sort
76    use da_wrf_interfaces, only : wrf_dm_bcast_integer
77    use gsi_thinning, only : r999,r360,rlat_min,rlat_max,rlon_min,rlon_max, &
78                             dlat_grid,dlon_grid,thinning_grid, &
79                             makegrids,map2grids, &
80                             destroygrids
81                             
82    implicit none
83    
84 contains
85 
86 #include "da_calculate_grady_rad.inc"
87 #include "da_read_filtered_rad.inc"
88 #include "da_write_filtered_rad.inc"
89 #include "da_read_obs_bufrtovs.inc"
90 #include "da_read_obs_bufrairs.inc"
91 #include "da_read_obs_bufrssmis.inc"
92 #include "da_allocate_rad_iv.inc"
93 #include "da_initialize_rad_iv.inc"
94 #include "da_read_kma1dvar.inc"
95 #include "da_sort_rad.inc"
96 #include "da_setup_bufrtovs_structures.inc"
97 
98 end module da_radiance
99