updated top-level README and version_decl for V4.5 (#1847)
[WRF.git] / share / solve_interface.F
blobe07d613f9ed5cfe32d3bfaa4aba39d1360dac6cd
1 !WRF:MEDIATION_LAYER:ADT_BARRIER
4 SUBROUTINE solve_interface ( grid ) 
6    USE module_domain
7    USE module_timing
8    USE module_driver_constants
9    USE module_configure
10    USE module_wrf_error
11 #if( EM_CORE == 1 )
12    USE module_trajectory, only : trajectory_driver
13 #endif
15    IMPLICIT NONE
17    INTERFACE
18 #if (EM_CORE == 1 && DA_CORE != 1)
19 # include  "solve_em.int"
20 #endif
21    END INTERFACE
23    TYPE(domain) , INTENT(INOUT)  :: grid
24    TYPE (grid_config_rec_type)   :: config_flags
26    INTEGER     :: idum1, idum2
27    CHARACTER(len=256) :: dbg_msg
29    CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
30    CALL set_scalar_indices_from_config ( grid%id , idum1 , idum2 )
32 #if (EM_CORE == 1 && DA_CORE != 1)
33    
34 #if ( WRFPLUS == 1 )
35    IF      ( config_flags%dyn_opt == dyn_em_tl ) THEN
36       CALL solve_em_tl  ( grid , config_flags  &
38 # include "actual_new_args.inc"
40                )
41    ELSE IF ( config_flags%dyn_opt == dyn_em_ad ) THEN
42       CALL solve_em_ad  ( grid , config_flags  &
44 # include "actual_new_args.inc"
46                )
47    ELSE
48 #endif
49       CALL solve_em  ( grid , config_flags  &
51 # include "actual_new_args.inc"
53                )
54 #if ( WRFPLUS == 1 )
55    END IF
56 #endif
58 # if ( WRF_CHEM == 1 )
59    IF ( config_flags%chem_opt > 0 .or. config_flags%tracer_opt > 0 ) THEN
61      CALL chem_driver  ( grid , config_flags  &
63 # include "actual_new_args.inc"
65                )
66    ENDIF
67 # endif
68 #endif
70 # if ( EM_CORE == 1 && WRFPLUS != 1 )
71    if( grid%traj_opt /= no_trajectory ) then
72      write(dbg_msg,'(''solve_xface('',i2.2,''): Before call to trajectory_driver'')') grid%id
73      call wrf_debug( 200,trim(dbg_msg) )
74      call trajectory_driver( grid )
75      write(dbg_msg,'(''solve_xface('',i2.2,''): After  call to trajectory_driver'')') grid%id
76      call wrf_debug( 200,trim(dbg_msg) )
77    endif
78 # endif
80 END SUBROUTINE solve_interface