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