1 !WRF:MEDIATION_LAYER:ADT_BARRIER
4 SUBROUTINE solve_interface ( grid )
8 USE module_driver_constants
12 USE module_trajectory, only : trajectory_driver
18 #if (EM_CORE == 1 && DA_CORE != 1)
19 # include "solve_em.int"
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)
35 IF ( config_flags%dyn_opt == dyn_em_tl ) THEN
36 CALL solve_em_tl ( grid , config_flags &
38 # include "actual_new_args.inc"
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"
49 CALL solve_em ( grid , config_flags &
51 # include "actual_new_args.inc"
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"
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) )
80 END SUBROUTINE solve_interface