da_wrfvar_top.f90

References to this file elsewhere.
1 module da_wrfvar_top
2 
3    !-----------------------------------------------------------------------
4    ! Purpose: 
5    !-----------------------------------------------------------------------
6 
7    use module_configure, only : grid_config_rec_type,model_config_rec, &
8       model_to_grid_config_rec, get_config_as_buffer,set_config_as_buffer, &
9       initial_config,nl_get_debug_level
10    use module_domain, only : domain,alloc_and_configure_domain, head_grid, &
11       program_name
12    use module_driver_constants, only : max_comms
13    use module_symbols_util, only : wrfu_finalize, wrfu_initialize, &
14       wrfu_cal_gregorian
15 
16    use module_radiance, only : satinfo, time_slots
17 #ifdef RTTOV
18    use module_radiance, only : coefs, sensor_descriptor
19 #endif
20 
21    use module_state_description, only : num_moist, num_a_moist, num_g_moist, &
22       num_scalar, num_a_scalar, num_g_scalar
23    use module_tiles, only : set_tiles
24 
25 #ifdef DM_PARALLEL
26    use module_dm, only : local_communicator, local_communicator_x, &
27       local_communicator_y, ntasks_x, ntasks_y, data_order_xyz, mytask, &
28       ntasks, data_order_xy,wrf_dm_initialize
29    use module_comm_dm, only : halo_radar_xa_w_sub,halo_ssmi_xa_sub, &
30       halo_sfc_xa_sub, halo_xa_sub, halo_psichi_uv_adj_sub, halo_bal_eqn_adj_sub, &
31       halo_psichi_uv_sub, halo_init_sub, halo_psichi_uv_adj_sub, halo_2d_work_sub
32 #endif
33 
34    ! too many namelist options to list
35    use da_control
36    use da_define_structures, only : y_type, j_type, iv_type, be_type, &
37       xbx_type,da_deallocate_background_errors,da_initialize_cv, &
38       da_zero_vp_type,da_allocate_y,da_deallocate_observations, &
39       da_deallocate_y
40    use da_minimisation, only : da_get_innov_vector,da_minimise_cg, &
41       da_write_diagnostics
42    use da_radiance1, only : da_write_oa_rad_ascii
43    use da_obs_io, only : da_write_filtered_obs
44    use da_par_util, only : da_system,da_copy_tile_dims,da_copy_dims
45    use da_physics, only : da_uvprho_to_w_lin
46    use da_radiance1, only : num_tovs_before, tovs_recv_pe,tovs_copy_count, &
47       tovs_send_pe,tovs_send_count,tovs_recv_start, num_tovs_after, &
48       tovs_send_start
49    use da_reporting, only : message, da_warning, da_error, da_message
50    use da_setup_structures, only : da_setup_obs_structures, &
51       da_setup_background_errors,da_setup_flow_predictors
52    use da_test, only : da_check
53    use da_tools_serial, only : da_get_unit, da_free_unit
54    use da_tracing, only : da_trace_entry, da_trace_exit, da_trace
55    use da_transfer_model, only : da_transfer_xatoanalysis,da_setup_firstguess
56    use da_vtox_transforms, only : da_transform_vtox
57    use da_wrfvar_io, only : da_med_initialdata_input, da_med_initialdata_output
58 
59 #ifdef CRTM
60    use module_radiance, only : crtm_destroy
61    use da_crtm, only : channelinfo, sensor_descriptor
62    use da_control, only : rtm_option, use_rad
63 #endif
64 
65    use da_wrf_interfaces
66 
67    implicit none
68 
69    integer :: loop, levels_to_process
70 
71    type (domain) , pointer :: keep_grid, grid_ptr, null_domain
72    type (grid_config_rec_type), save :: config_flags
73    integer                 :: number_at_same_level
74    integer                 :: time_step_begin_restart
75 
76    integer :: domain_id , fid , oid , idum1 , idum2
77 
78 #ifdef DM_PARALLEL
79    integer                 :: nbytes
80    integer, parameter      :: configbuflen = 4* CONFIG_BUF_LEN
81    integer                 :: configbuf( configbuflen )
82 #endif
83 
84    character (len=80)      :: rstname
85 
86 contains
87 
88 #include "da_wrfvar_init1.inc"
89 #include "da_wrfvar_init2.inc"
90 #include "da_wrfvar_run.inc"
91 #include "da_wrfvar_interface.inc"
92 #include "da_wrfvar_finalize.inc"
93 #include "da_solve.inc"
94 
95 end module da_wrfvar_top