Merge remote-tracking branch 'origin/release-v4.5.2'
[WRF.git] / var / da / da_obs / da_obs.f90
blob998f6fa5c5b649d04d222b966c280b49618c157b
1 module da_obs
3 use da_define_structures, only : multi_level_type, y_type, iv_type, infa_type, &
4 #if (WRF_CHEM == 1)
5 da_allocate_y_chem_sfc, da_deallocate_y_chem_sfc, &
6 #endif
7 field_type, each_level_type,da_allocate_y, da_random_seed,da_allocate_y_rain, &
8 da_allocate_y_radar
9 #if (WRF_CHEM == 1)
10 use module_domain, only : domain, x_type, xchem_type
11 use da_chem_sfc, only : da_transform_xtoy_chem_sfc, da_transform_xtoy_chem_sfc_adj
12 #else
13 use module_domain, only : domain, x_type
14 #endif
15 use da_airep, only : da_transform_xtoy_airep, da_transform_xtoy_airep_adj
16 use da_airsr, only : da_transform_xtoy_airsr, da_transform_xtoy_airsr_adj
17 use da_bogus, only : da_transform_xtoy_bogus, da_transform_xtoy_bogus_adj
18 use da_buoy, only : da_transform_xtoy_buoy,da_transform_xtoy_buoy_adj
19 use da_control, only : use_shipsobs, use_synopobs, use_ssmt2obs, &
20 use_soundobs,use_mtgirsobs,use_satemobs, use_profilerobs, use_pilotobs, &
21 use_qscatobs,use_metarobs, use_polaramvobs, use_geoamvobs, &
22 use_bogusobs,use_buoyobs, use_airsretobs, use_tamdarobs, trace_use, num_procs, &
23 xmiss, missing_r, missing, use_airepobs,use_gpspwobs,use_gpsztdobs,use_gpsrefobs, &
24 use_ssmt1obs,filtered_obs_unit,fmt_each,fmt_info,fmt_srfc, ide, jde, &
25 pseudo_x, fg_format, fg_format_kma_global, fg_format_wrf_arw_regional,fg_format_wrf_nmm_regional, &
26 missing_data, pseudo_var, pseudo_val,stdout, num_pseudo, pseudo_y, pseudo_z, &
27 pseudo_err,obs_qc_pointer,myproc,rtm_option,rtm_option_rttov, &
28 rtm_option_crtm,use_rad, base_temp, base_lapse, base_pres, &
29 ob_format,ob_format_ascii,filename_len, trace_use_dull, &
30 sound, mtgirs, synop, profiler, gpsref, gpseph, gpspw, polaramv, geoamv, ships, metar, &
31 satem, radar, ssmi_rv, ssmi_tb, ssmt1, ssmt2, airsr, pilot, airep, sonde_sfc,rain, &
32 bogus, buoy, qscat, tamdar, tamdar_sfc, pseudo, num_ob_indexes, its,ite,jds,jts,jte,ids, &
33 #if (WRF_CHEM == 1)
34 chemic_surf, &
35 #endif
36 write_mod_filtered_obs, radiance, use_varbc, obs_names, q_error_options,radar_rf_rscl,radar_rv_rscl, kts,kte,kds,kde, &
37 use_gpsephobs
38 ! use_crtm_kmatrix,use_crtm_kmatrix_fast
39 use da_control, only : pseudo_tpw, pseudo_ztd, pseudo_ref, pseudo_uvtpq
40 use da_define_structures, only : da_allocate_obs_info
41 #if (WRF_CHEM == 1)
42 use module_state_description, only : num_chemic_surf, PARAM_FIRST_SCALAR
43 #endif
45 #ifdef CRTM
46 use da_crtm, only : da_transform_xtoy_crtm, da_transform_xtoy_crtm_adj
47 !da_transform_xtoy_crtmk,da_transform_xtoy_crtmk_adj
48 !da_transform_xtoy_crtmk_f, da_transform_xtoy_crtmk_f_adj
49 #endif
50 use da_geoamv, only : da_transform_xtoy_geoamv, da_transform_xtoy_geoamv_adj
51 use da_gpspw, only : da_transform_xtoy_gpspw,da_transform_xtoy_gpspw_adj, &
52 da_transform_xtoy_gpsztd,da_transform_xtoy_gpsztd_adj
53 use da_gpsref, only : da_transform_xtoy_gpsref,da_transform_xtoy_gpsref_adj
54 use da_gpseph, only : da_transform_xtoy_gpseph,da_transform_xtoy_gpseph_adj, &
55 global_adj_ref, global_h_mean, global_h, global_xa_ref, global_ref, gps_rays
56 use da_metar, only : da_transform_xtoy_metar, da_transform_xtoy_metar_adj
57 use da_physics, only : da_tp_to_qs,da_get_q_error
58 use da_pilot, only : da_transform_xtoy_pilot,da_transform_xtoy_pilot_adj
59 use da_polaramv, only : da_transform_xtoy_polaramv, da_transform_xtoy_polaramv_adj
60 use da_profiler, only : da_transform_xtoy_profiler, da_transform_xtoy_profiler_adj
61 use da_pseudo, only : da_transform_xtoy_pseudo, da_transform_xtoy_pseudo_adj
62 use da_qscat, only : da_transform_xtoy_qscat,da_transform_xtoy_qscat_adj
63 use da_radar, only : da_transform_xtoy_radar,da_transform_xtoy_radar_adj
64 use da_rain, only : da_transform_xtoy_rain,da_transform_xtoy_rain_adj
65 use da_reporting, only : da_error, message, da_warning, da_message
66 #ifdef RTTOV
67 use da_rttov, only : da_transform_xtoy_rttov,da_transform_xtoy_rttov_adj
68 #endif
69 use da_satem, only : da_transform_xtoy_satem, da_transform_xtoy_satem_adj
70 use da_ships, only : da_transform_xtoy_ships, da_transform_xtoy_ships_adj
71 use da_sound, only : da_transform_xtoy_sound, da_transform_xtoy_sonde_sfc, &
72 da_transform_xtoy_sound_adj, da_transform_xtoy_sonde_sfc_adj
73 use da_mtgirs, only : da_transform_xtoy_mtgirs, da_transform_xtoy_mtgirs_adj
74 use da_tamdar, only : da_transform_xtoy_tamdar, da_transform_xtoy_tamdar_adj, &
75 da_transform_xtoy_tamdar_sfc, da_transform_xtoy_tamdar_sfc_adj
76 use da_ssmi, only : da_transform_xtoy_ssmt1, da_transform_xtoy_ssmt2, &
77 da_transform_xtoy_ssmi_tb, da_transform_xtoy_ssmi_rv, &
78 da_transform_xtoy_ssmi_tb_adj, da_transform_xtoy_ssmi_rv_adj, &
79 da_transform_xtoy_ssmt1_adj, da_transform_xtoy_ssmt2_adj
80 use da_synop, only : da_transform_xtoy_synop,da_transform_xtoy_synop_adj
81 use da_tools_serial, only : da_free_unit, da_get_unit
82 use da_tools, only : da_add_noise, da_add_noise_new,da_random_omb, &
83 da_geo2msl1, da_msl2geo1
84 use da_tracing, only : da_trace_entry, da_trace_exit
85 use module_dm, only : wrf_dm_sum_real, wrf_dm_sum_reals
87 implicit none
89 contains
91 #include "da_obs_proc_station.inc"
92 #include "da_transform_xtoy.inc"
93 #include "da_transform_xtoy_adj.inc"
94 #include "da_add_noise_to_ob.inc"
95 #include "da_check_missing.inc"
96 #include "da_fill_obs_structures.inc"
97 #include "da_fill_obs_structures_radar.inc"
98 #include "da_fill_obs_structures_rain.inc"
99 #if (WRF_CHEM == 1)
100 #include "da_fill_obs_structures_chem_sfc.inc"
101 #endif
102 #include "da_random_omb_all.inc"
103 #include "da_store_obs_grid_info.inc"
104 #include "da_store_obs_grid_info_rad.inc"
105 #include "da_count_filtered_obs.inc"
106 #include "da_obs_sensitivity.inc"
107 #include "da_set_obs_missing.inc"
108 #include "da_set_3d_obs_missing.inc"
110 end module da_obs