da_test.f90

References to this file elsewhere.
1 module da_test
2 
3    !---------------------------------------------------------------------------
4    ! Purpose: Collection of routines associated with minimisation.
5    !---------------------------------------------------------------------------
6 
7    use module_configure, only : grid_config_rec_type
8    use module_dm, only : wrf_dm_sum_real
9    use module_domain, only : xpose_type, vp_type, xb_type, x_type, ep_type, &
10       domain
11 
12 #ifdef DM_PARALLEL
13    use mpi, only : mpi_sum
14 #endif
15 
16    use da_control, only : trace_use,ims,ime,jms,jme,kms,kme, &
17       use_soundobs,ierr,use_buoyobs,use_bogusobs, &
18       use_geoamvobs,use_polaramvobs,use_pilotobs,use_metarobs,use_gpsrefobs, &
19       use_gpspwobs,use_qscatobs,use_satemobs,use_shipsobs,use_radarobs, &
20       use_profilerobs,use_ssmitbobs,use_synopobs,use_ssmt2obs,use_ssmt1obs, &
21       use_ssmiretrievalobs,use_airepobs,comm,global,stdout,rootproc, &
22       its,ite,jts,jte,kts,kte,sfc_assi_options,typical_qrn_rms, &
23       typical_u_rms,typical_v_rms,typical_w_rms,typical_t_rms, typical_p_rms, &
24       typical_q_rms,typical_qcw_rms,print_detail_testing,typical_rh_rms, &
25       fg_format, fg_format_wrf,typical_rf_rms,typical_rv_rms, &
26       typical_thickness_rms, typical_tb19v_rms,typical_tb37h_rms, &
27       typical_tb85h_rms,typical_tb37v_rms,typical_tb85v_rms,typical_tb22v_rms, &
28       typical_tb19h_rms,typical_speed_rms,typical_tpw_rms,typical_ref_rms, &
29       use_rad,cv_options_hum,inv_typ_vp5_sumsq,inv_typ_vp1_sumsq, &
30       inv_typ_vp3_sumsq,inv_typ_vp2_sumsq,inv_typ_vpalpha_sumsq, &
31       inv_typ_vp4_sumsq,typical_rho_rms,balance_geo,balance_cyc,balance_type, &
32       balance_geocyc
33    use da_define_structures, only : da_zero_x,da_zero_vp_type,da_allocate_y, &
34       da_deallocate_y,be_type, xbx_type, ob_type, y_type
35    use da_dynamics, only : da_uv_to_divergence,da_uv_to_vorticity, &
36       da_psichi_to_uv, da_psichi_to_uv_adj
37    use da_ffts, only : da_solve_poissoneqn_fct
38    use da_minimisation, only : da_transform_vtoy_adj,da_transform_vtoy
39    use da_obs, only : da_transform_xtoy,da_transform_xtoy_adj
40    use da_par_util, only : da_local_to_global
41 #ifdef DM_PARALLEL
42    use da_par_util1, only : true_mpi_real
43 #endif
44    use da_physics, only : da_transform_xtopsfc,da_transform_xtopsfc_adj, &
45       da_pt_to_rho_lin,da_transform_xtotpw,da_transform_xtogpsref_lin, &
46       da_transform_xtowtq, da_transform_xtowtq_adj,da_pt_to_rho_adj, &
47       da_transform_xtotpw_adj
48    use da_reporting, only : da_error, message, da_message
49    use da_spectral, only : da_test_spectral
50    use da_ssmi, only : da_transform_xtoseasfcwind_lin, &
51       da_transform_xtoseasfcwind_adj
52    use da_statistics, only : da_correlation_coeff1d,da_correlation_coeff2d
53    use da_tracing, only : da_trace_entry,da_trace_exit
54    ! Don't use, as we pass a 3D array into a 1D one
55    ! use da_wrf_interfaces, only : wrf_dm_bcast_real
56    use da_vtox_transforms, only : da_transform_xtotb_lin, &
57       da_transform_xtotb_adj, da_vertical_transform, da_transform_vptox, &
58       da_transform_xtogpsref_adj,da_transform_vptox_adj,da_transform_vtox, &
59       da_transform_vtox_adj,da_transform_vtovv,da_transform_vtovv_global, &
60       da_transform_vtovv_global_adj, da_transform_vtovv_adj
61 
62    implicit none
63 
64 contains
65 
66 #include "da_check_balance.inc"
67 #include "da_check_cvtovv_adjoint.inc"
68 #include "da_check_vtox_adjoint.inc"
69 #include "da_check_vptox_adjoint.inc"
70 #include "da_check_vp_errors.inc"
71 #include "da_check_vvtovp_adjoint.inc"
72 #include "da_check_xtovptox_errors.inc"
73 #include "da_check_xtoy_adjoint.inc"
74 #include "da_check_xtoy_adjoint_airep.inc"
75 #include "da_check_xtoy_adjoint_gpspw.inc"
76 #include "da_check_xtoy_adjoint_gpsref.inc"
77 #include "da_check_xtoy_adjoint_metar.inc"
78 #include "da_check_xtoy_adjoint_pilot.inc"
79 #include "da_check_xtoy_adjoint_ssmi.inc"
80 #include "da_check_xtoy_adjoint_ssmi_rv.inc"
81 #include "da_check_xtoy_adjoint_ssmi_tb.inc"
82 #include "da_check_xtoy_adjoint_satem.inc"
83 #include "da_check_xtoy_adjoint_geoamv.inc"
84 #include "da_check_xtoy_adjoint_polaramv.inc"
85 #include "da_check_xtoy_adjoint_ships.inc"
86 #include "da_check_xtoy_adjoint_radar.inc"
87 #include "da_check_xtoy_adjoint_bogus.inc"
88 #include "da_check_xtoy_adjoint_sound.inc"
89 #include "da_check_xtoy_adjoint_sonde_sfc.inc"
90 #include "da_check_xtoy_adjoint_synop.inc"
91 #include "da_check_xtoy_adjoint_rad.inc"
92 #include "da_transform_xtovp.inc"
93 #include "da_check.inc"
94 #include "da_check_xtoy_adjoint_pseudo.inc"
95 #include "da_check_xtoy_adjoint_qscat.inc"
96 #include "da_check_xtoy_adjoint_ssmt1.inc"
97 #include "da_check_xtoy_adjoint_ssmt2.inc"
98 #include "da_check_xtoy_adjoint_profiler.inc"
99 #include "da_check_xtoy_adjoint_buoy.inc"
100 #include "da_setup_testfield.inc"
101 #include "da_check_sfc_assi.inc"
102 #include "da_check_psfc.inc"
103 #include "da_set_tst_trnsf_fld.inc"
104 #include "da_check_vtoy_adjoint.inc"
105 #include "da_get_y_lhs_value.inc"
106 
107 end module da_test