merge standard release WRF/WPS V3.0.1.1 into wrffire
[wrffire.git] / wrfv2_fire / share / solve_interface.F
blobdbced41995827363ecf57f6955a5c841e70e51fc
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
12    IMPLICIT NONE
14    INTERFACE
15 #if (EM_CORE == 1 && DA_CORE != 1)
16 # include  <solve_em.int>
17 #endif
18 #if (NMM_CORE == 1)
19 # include  <solve_nmm.int>
20 #endif
21 #if (COAMPS_CORE == 1)
22 # include  <solve_coamps.int>
23 #endif
24 #if (EXP_CORE == 1)
25 # include  <solve_exp.int>
26 #endif
27    END INTERFACE
29    TYPE(domain) , INTENT(INOUT)  :: grid
30    TYPE (grid_config_rec_type)   :: config_flags
32    INTEGER     :: idum1, idum2
34    CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
35    CALL set_scalar_indices_from_config ( grid%id , idum1 , idum2 )
37 #if (EM_CORE == 1 && DA_CORE != 1)
38    CALL solve_em  ( grid , config_flags  &
40 # include <actual_new_args.inc>
42                )
44 # ifdef WRF_CHEM
45    IF ( config_flags%chem_opt > 0  ) THEN
47      CALL chem_driver  ( grid , config_flags  &
49 # include <actual_new_args.inc>
51                )
52    ENDIF
53 # endif
54 #endif
55 #if (NMM_CORE == 1)
56    CALL solve_nmm  ( grid , config_flags   &
58 # include <actual_args.inc>
60                )
61 # ifdef WRF_CHEM
62    IF ( config_flags%chem_opt > 0  ) THEN
64      CALL chem_driver  ( grid , config_flags  &
66 # include <actual_new_args.inc>
67 !  
68                )
69    ENDIF
70 # endif
71 #endif
72 #if (COAMPS_CORE == 1)
73    CALL solve_coamps  ( grid , config_flags   &
75 # include <actual_args.inc>
77                )
78 #endif
80 ! ###### 4. Edit share/solve_interface.F to add call to experimental core
82 #if (EXP_CORE == 1)
83    CALL solve_exp  ( grid              &
85 # include <exp_actual_args.inc>
87                )
88 #endif
90 END SUBROUTINE solve_interface