Merge remote-tracking branch 'origin/release-v4.6.1'
[WRF.git] / var / da / da_gpsref / da_gpsref.f90
blobdae5b11bd3636d07c524a18999a9f4e36f2c31af
1 module da_gpsref
3 use module_domain, only : domain
4 use module_dm, only : wrf_dm_sum_real
6 use da_control, only : obs_qc_pointer,max_ob_levels,missing_r, &
7 v_interp_p, v_interp_h, check_max_iv_print, radian, &
8 missing, max_error_uv, max_error_t, rootproc,fails_error_max, &
9 max_error_p,max_error_q, check_max_iv_unit,check_max_iv, qcstat_conv_unit, &
10 max_stheight_diff,missing_data,max_error_bq,max_error_slp, ob_vars, &
11 max_error_bt, max_error_buv, gpsref,max_error_thickness, &
12 ! t_iwabuchi 20121216 use ms,ime,jms,jme for interpolation of log(N)
13 ! pseudo_var, num_pseudo, kms,kme,kts,kte, trace_use_dull, &
14 pseudo_var, num_pseudo, ims,ime,jms,jme, kms,kme,kts,kte, trace_use_dull, &
15 ! t_iwabuchi END
16 anal_type_verify,fails_error_max,pseudo_err,pseudo_x, pseudo_y, stdout, &
17 use_gpsrefobs, gpsref_thinning, pseudo_z,pseudo_val,max_error_ref, pseudo, &
18 jts, jte,its,ite, npres_print, pptop, write_rej_obs_conv
19 use da_control, only : pseudo_ref
20 use da_control, only : gpsref_qc_dndz_opt, gpsref_qc_dndz2_opt, gpsref_qc_gsi_opt, &
21 gpsref_qc_pcnt_opt, gpsref_qc_dndz_thresh, gpsref_qc_dndz2_thresh, &
22 gpsref_qc_pcnt_below, gpsref_qc_pcnt_above, gpsref_qc_pcnt_middle, &
23 gpsref_qc_pcnt_h1, gpsref_qc_pcnt_h2, &
24 qcflag_pcnt_below, qcflag_pcnt_middle, qcflag_pcnt_above, &
25 qcflag_dndz, qcflag_dndz2, qcflag_cutoff, qcflag_height, write_iv_gpsref, &
26 num_fgat_time
27 use da_define_structures, only : maxmin_type, iv_type, y_type, jo_type, &
28 bad_data_type, x_type, number_type, bad_data_type, &
29 maxmin_type, da_allocate_observations
30 use da_interpolation, only : da_interp_lin_3d,da_interp_lin_3d_adj, &
31 da_to_zk
32 use da_par_util, only : da_proc_stats_combine
33 use da_par_util1, only : da_proc_sum_int, da_proc_sum_ints
34 use da_statistics, only : da_stats_calculate
35 use da_tools, only : da_max_error_qc, da_residual, da_convert_zk,da_get_print_lvl
36 use da_tracing, only : da_trace_entry, da_trace_exit
37 use da_reporting, only : da_error, message, da_message, da_warning
38 use da_tools_serial, only : da_get_unit, da_free_unit
40 ! The "stats_gpsref_type" is ONLY used locally in da_gpsref:
42 type residual_gpsref1_type
43 real :: ref ! GPS Refractivity
44 real :: p ! Retrieved from GPS Refractivity
45 real :: t ! Retrieved from GPS Refractivity
46 real :: q ! Used in GPS Refra. retrieval.
47 end type residual_gpsref1_type
49 type maxmin_gpsref_stats_type
50 type (maxmin_type) :: ref ! GPS Refractivity
51 end type maxmin_gpsref_stats_type
53 type stats_gpsref_type
54 type (maxmin_gpsref_stats_type) :: maximum, minimum
55 type (residual_gpsref1_type) :: average, rms_err
56 end type stats_gpsref_type
58 contains
60 #include "da_ao_stats_gpsref.inc"
61 #include "da_calculate_grady_gpsref.inc"
62 #include "da_jo_and_grady_gpsref.inc"
63 #include "da_residual_gpsref.inc"
64 #include "da_oi_stats_gpsref.inc"
65 #include "da_print_stats_gpsref.inc"
66 #include "da_transform_xtoy_gpsref.inc"
67 #include "da_transform_xtoy_gpsref_adj.inc"
68 #include "da_check_max_iv_gpsref.inc"
69 #include "da_get_innov_vector_gpsref.inc"
70 #include "da_qc_gpsref.inc"
72 end module da_gpsref