source: trunk/MESOSCALE/LMD_MM_MARS/SRC/WRFV2/share/solve_interface.F @ 790

Last change on this file since 790 was 11, checked in by aslmd, 14 years ago

spiga@svn-planeto:ajoute le modele meso-echelle martien

File size: 2.5 KB
Line 
1!WRF:MEDIATION_LAYER:ADT_BARRIER
2!
3
4SUBROUTINE solve_interface ( grid )
5
6   USE module_domain
7   USE module_timing
8   USE module_driver_constants
9   USE module_configure
10   USE module_wrf_error
11
12   IMPLICIT NONE
13
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
28
29   TYPE(domain) , INTENT(INOUT)  :: grid
30   TYPE (grid_config_rec_type)   :: config_flags
31
32   INTEGER     :: idum1, idum2
33
34#ifdef DEREF_KLUDGE
35!  see http://www.mmm.ucar.edu/wrf/WG2/topics/deref_kludge.htm
36   INTEGER     :: sm31 , em31 , sm32 , em32 , sm33 , em33
37   INTEGER     :: sm31x, em31x, sm32x, em32x, sm33x, em33x
38   INTEGER     :: sm31y, em31y, sm32y, em32y, sm33y, em33y
39#endif
40
41   CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
42   CALL set_scalar_indices_from_config ( grid%id , idum1 , idum2 )
43
44#include "deref_kludge.h"
45
46   IF ( config_flags%dyn_opt == DYN_NODYN  ) THEN
47
48     CALL wrf_debug( 1 , "solve_interface: dynamics disabled\n" )
49
50#if (EM_CORE == 1 && DA_CORE != 1)
51   ELSE IF ( config_flags%dyn_opt == DYN_EM  ) THEN
52     CALL solve_em  ( grid , config_flags  &
53!
54# include <em_actual_new_args.inc>
55!
56               )
57
58# ifdef WRF_CHEM
59   IF ( config_flags%chem_opt > 0  ) THEN
60
61     CALL chem_driver  ( grid , config_flags  &
62!
63# include <em_actual_new_args.inc>
64!
65               )
66   ENDIF
67# endif
68#endif
69#if (NMM_CORE == 1)
70   ELSE IF ( config_flags%dyn_opt == DYN_NMM  ) THEN
71     CALL solve_nmm  ( grid , config_flags   &
72!
73# include <nmm_actual_args.inc>
74!
75               )
76# ifdef WRF_CHEM
77   IF ( config_flags%chem_opt > 0  ) THEN
78
79     CALL chem_driver  ( grid , config_flags  &
80!
81# include <nmm_actual_new_args.inc>
82
83               )
84   ENDIF
85# endif
86#endif
87#if (COAMPS_CORE == 1)
88   ELSE IF ( config_flags%dyn_opt == DYN_COAMPS  ) THEN
89     CALL solve_coamps  ( grid , config_flags   &
90!
91# include <coamps_actual_args.inc>
92!
93               )
94#endif
95
96! ###### 4. Edit share/solve_interface.F to add call to experimental core
97
98#if (EXP_CORE == 1)
99   ELSE IF ( config_flags%dyn_opt == DYN_EXP  ) THEN
100     CALL solve_exp  ( grid              &
101!
102# include <exp_actual_args.inc>
103!
104               )
105#endif
106
107   ELSE
108
109     WRITE( wrf_err_message , * ) 'Invalid dynamics option: dyn_opt = ',config_flags%dyn_opt
110     CALL wrf_error_fatal ( TRIM ( wrf_err_message ) )
111     
112   END IF
113
114END SUBROUTINE solve_interface
115
Note: See TracBrowser for help on using the repository browser.