Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_synop / da_synop.f90
blobe401773b22dd8572ac1b8e77ea1fa1db9ea176ef
1 module da_synop
3 use module_domain, only : domain
5 use da_control, only : obs_qc_pointer,max_ob_levels,missing_r, missing_data, &
6 check_max_iv_print, check_max_iv_unit, v_interp_p, v_interp_h, &
7 check_max_iv, missing, max_error_uv, max_error_t, rootproc, &
8 max_error_p,max_error_q, sfc_assi_options, no_buddies, fails_error_max, &
9 fails_buddy_check, check_buddy, check_buddy_print, check_buddy_unit, &
10 buddy_weight , max_buddy_uv, max_buddy_t, max_buddy_p, max_buddy_rh, &
11 max_stheight_diff,test_dm_exact, anal_type_verify, &
12 kts,kte,kms,kme,sfc_assi_options_1,sfc_assi_options_2 , &
13 trace_use_dull, synop, max_ext_its,qcstat_conv_unit,ob_vars, &
14 convert_fd2uv, convert_uv2fd, max_error_spd, max_error_dir, &
15 max_omb_spd, max_omb_dir, pi, qc_rej_both, &
16 wind_sd_synop, wind_stats_sd, write_rej_obs_conv
17 use da_control, only : surface_correction, sfc_hori_intp_options, &
18 q_error_options, sfcht_adjust_q, obs_err_inflate, stn_ht_diff_scale
19 use da_grid_definitions, only : da_ffdduv, da_ffdduv_model, da_ffdduv_diagnose
20 use da_define_structures, only : maxmin_type, iv_type, y_type, jo_type, &
21 bad_data_type, x_type, number_type, bad_data_type
22 use da_interpolation, only : da_to_zk, &
23 da_interp_lin_3d,da_interp_lin_3d_adj, &
24 da_interp_lin_2d, da_interp_lin_2d_adj
25 use da_par_util1, only : da_proc_sum_int
26 use da_par_util, only : da_proc_stats_combine, &
27 da_deallocate_global_synop, da_to_global_synop
28 use da_physics, only : da_sfc_pre, da_transform_xtopsfc, &
29 da_transform_xtopsfc_adj, da_uv_to_sd_lin, da_uv_to_sd_adj, &
30 da_tpq_to_rh, da_tp_to_qs, da_get_q_error
31 use da_statistics, only : da_stats_calculate
32 use da_tools, only : da_max_error_qc, da_residual, da_obs_sfc_correction, &
33 da_buddy_qc, da_convert_zk, da_sfc_hori_interp_weights
34 use da_tracing, only : da_trace_entry, da_trace_exit
36 ! The "stats_synop_type" is ONLY used locally in da_synop:
38 type residual_synop1_type
39 real :: u ! u-wind.
40 real :: v ! v-wind.
41 real :: t ! temperature
42 real :: p ! pressure
43 real :: q ! specific humidity
44 end type residual_synop1_type
46 type maxmin_synop_stats_type
47 type (maxmin_type) :: u, v, t, p, q
48 end type maxmin_synop_stats_type
50 type stats_synop_type
51 type (maxmin_synop_stats_type) :: maximum, minimum
52 type (residual_synop1_type) :: average, rms_err
53 end type stats_synop_type
55 contains
57 #include "da_ao_stats_synop.inc"
58 #include "da_jo_and_grady_synop.inc"
59 #include "da_jo_synop_uvtq.inc"
60 #include "da_residual_synop.inc"
61 #include "da_oi_stats_synop.inc"
62 #include "da_print_stats_synop.inc"
63 #include "da_transform_xtoy_synop.inc"
64 #include "da_transform_xtoy_synop_adj.inc"
65 #include "da_get_innov_vector_synop.inc"
66 #include "da_check_max_iv_synop.inc"
67 #include "da_calculate_grady_synop.inc"
68 #include "da_check_buddy_synop.inc"
70 end module da_synop