da_wrfvar_main.f90

References to this file elsewhere.
1 program da_wrfvar_main
2 
3    !-----------------------------------------------------------------------
4    ! Purpose: Main program of WRF-Var.  Responsible for starting up, reading 
5    ! in (and broadcasting for distributed memory) configuration data, defining 
6    ! and initializing the top-level domain, either from initial or restart
7    ! data, setting up time-keeping, and then calling the da_solve
8    ! routine assimilation. After the assimilation is completed, 
9    ! the model is properly shut down.
10    !-----------------------------------------------------------------------
11 
12    use module_symbols_util, only : wrfu_finalize
13 
14    use da_control, only : trace_use
15    use da_tracing, only : da_trace_init, da_trace_report, da_trace_entry, &
16       da_trace_exit
17    use da_wrf_interfaces, only : wrf_shutdown, wrf_message, disable_quilting
18    use da_wrfvar_top, only : da_wrfvar_init1,da_wrfvar_init2,da_wrfvar_run, &
19       da_wrfvar_finalize
20 
21    implicit none
22 
23    ! Split initialisation into 2 parts so we can start and stop trace here
24 
25    call disable_quilting
26 
27    call da_wrfvar_init1
28 
29    if (trace_use) call da_trace_init
30    if (trace_use) call da_trace_entry("da_wrfvar_main")
31 
32    call da_wrfvar_init2
33 
34    call da_wrfvar_run
35 
36    call da_wrfvar_finalize
37 
38    call wrf_message("*** WRF-Var completed successfully ***")
39 
40    if (trace_use) call da_trace_exit("da_wrfvar_main")
41    if (trace_use) call da_trace_report
42 
43    call wrfu_finalize
44    call wrf_shutdown
45 
46 end program da_wrfvar_main
47