updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / var / da / da_4dvar / da_4dvar.f90
blob98928f718c9110344f1c2e87ccc5c2c67f40d21b
1 module da_4dvar
3 use da_tracing, only : da_trace_entry, da_trace_exit
4 use da_reporting, only : da_error, message
5 use da_control, only : comm, var4d_bin, var4d_lbc, trace_use_dull, num_fgat_time, multi_inc
7 #ifdef VAR4D
9 use module_streams, only : MAX_WRF_ALARMS
10 use module_wrf_top, only : domain, head_grid, model_config_rec, config_flags, &
11 wrf_init, wrf_run, wrf_run_tl, wrf_run_ad, wrf_finalize, &
12 Setup_Timekeeping, gradient_out
13 use mediation_pertmod_io, only : xtraj_io_initialize, adtl_initialize, &
14 save_ad_forcing, read_ad_forcing, read_nl_xtraj, save_tl_pert, &
15 read_tl_pert, swap_ad_forcing
16 use module_configure, only : model_to_grid_config_rec, grid_config_rec_type
17 use module_domain, only : wrfu_timeinterval
18 use module_utility
19 use module_big_step_utilities_em, only : calc_mu_uv
20 use g_module_big_step_utilities_em, only : g_calc_mu_uv
21 use a_module_big_step_utilities_em, only : a_calc_mu_uv
23 #ifdef DM_PARALLEL
24 use module_dm, only : local_communicator
25 #endif
27 type (domain), pointer :: model_grid
28 type (grid_config_rec_type) :: model_config_flags
30 character*256 :: timestr
32 ! Define some variables to save the NL physical option
33 integer :: original_mp_physics, original_ra_lw_physics, original_ra_sw_physics, &
34 original_sf_sfclay_physics, original_bl_pbl_physics, original_cu_physics, &
35 original_ifsnow, original_icloud, original_mp_physics_ad
36 real :: original_cudt
38 REAL , DIMENSION(:,:,:) , ALLOCATABLE :: ubdy3dtemp1 , vbdy3dtemp1 , tbdy3dtemp1 , pbdy3dtemp1 , qbdy3dtemp1
39 REAL , DIMENSION(:,:,:) , ALLOCATABLE :: ubdy3dtemp2 , vbdy3dtemp2 , tbdy3dtemp2 , pbdy3dtemp2 , qbdy3dtemp2
40 REAL , DIMENSION(:,:,:) , ALLOCATABLE :: mbdy2dtemp1, mbdy2dtemp2 , wbdy3dtemp1 , wbdy3dtemp2
42 REAL , DIMENSION(:,:,:) , ALLOCATABLE :: u6_2, v6_2, w6_2, t6_2, ph6_2, p6
43 REAL , DIMENSION(:,:,:,:) , ALLOCATABLE :: moist6
44 REAL , DIMENSION(:,:) , ALLOCATABLE :: mu6_2, psfc6
46 contains
48 #include "da_nl_model.inc"
49 #include "da_tl_model.inc"
50 #include "da_ad_model.inc"
51 #include "da_finalize_model.inc"
52 #include "da_4dvar_io.inc"
53 #include "da_4dvar_lbc.inc"
55 #endif
57 end module da_4dvar