2 !WRF:MEDIATION_LAYER:NESTING
4 SUBROUTINE med_interp_domain ( parent_grid , nested_grid )
9 TYPE(domain), POINTER :: parent_grid , nested_grid
10 TYPE(domain), POINTER :: grid
12 TYPE (grid_config_rec_type) :: config_flags
14 ! ----------------------------------------------------------
15 ! ----------------------------------------------------------
17 ! ----------------------------------------------------------
19 ! ----------------------------------------------------------
20 ! Interface definitions for EM CORE
21 ! ----------------------------------------------------------
23 ! ----------------------------------------------------------
24 ! These routines are supplied by module_dm.F from the
25 ! external communication package (e.g. external/RSL)
26 ! ----------------------------------------------------------
27 SUBROUTINE interp_domain_em_part1 ( grid, intermediate_grid, ngrid, config_flags &
29 # include "dummy_new_args.inc"
34 TYPE(domain), POINTER :: grid ! name of the grid being dereferenced (must be "grid")
35 TYPE(domain), POINTER :: intermediate_grid
36 TYPE(domain), POINTER :: ngrid
37 TYPE (grid_config_rec_type) :: config_flags
38 # include <dummy_new_decl.inc>
39 END SUBROUTINE interp_domain_em_part1
41 SUBROUTINE interp_domain_em_part2 ( grid, nested_grid, config_flags &
43 # include "dummy_new_args.inc"
48 TYPE(domain), POINTER :: grid ! name of the grid being dereferenced (must be "grid")
49 TYPE(domain), POINTER :: nested_grid
50 TYPE (grid_config_rec_type) :: config_flags
51 # include <dummy_new_decl.inc>
52 END SUBROUTINE interp_domain_em_part2
54 ! ----------------------------------------------------------
55 ! Interface definitions for NMM (placeholder)
56 ! ----------------------------------------------------------
57 #if (NMM_CORE == 1 && NMM_NEST == 1)
58 !=======================================================================
59 ! Added for the NMM core. This is gopal's doing.
60 !=======================================================================
62 SUBROUTINE interp_domain_nmm_part1 ( grid, intermediate_grid, ngrid, config_flags &
64 # include "dummy_args.inc"
69 TYPE(domain), POINTER :: grid ! name of the grid being dereferenced (must be "grid")
70 TYPE(domain), POINTER :: intermediate_grid
71 TYPE(domain), POINTER :: ngrid
72 TYPE (grid_config_rec_type) :: config_flags
73 # include <dummy_decl.inc>
74 END SUBROUTINE interp_domain_nmm_part1
76 SUBROUTINE interp_domain_nmm_part2 ( grid, nested_grid, config_flags &
78 # include "dummy_args.inc"
83 TYPE(domain), POINTER :: grid ! name of the grid being dereferenced (must be "grid")
84 TYPE(domain), POINTER :: nested_grid
85 TYPE (grid_config_rec_type) :: config_flags
86 # include <dummy_decl.inc>
87 END SUBROUTINE interp_domain_nmm_part2
89 !=======================================================================
90 ! End of gopal's doing.
91 !=======================================================================
93 ! ----------------------------------------------------------
94 ! Interface definitions for COAMPS (placeholder)
95 ! ----------------------------------------------------------
96 #if (COAMPS_CORE == 1)
99 ! ----------------------------------------------------------
100 ! End of Interface blocks
101 ! ----------------------------------------------------------
102 ! ----------------------------------------------------------
103 ! ----------------------------------------------------------
105 ! ----------------------------------------------------------
106 ! ----------------------------------------------------------
107 ! Interpolation calls for EM CORE. The called
108 ! routines below are supplied by module_dm.F
109 ! from the external communications package (e.g. RSL)
110 ! ----------------------------------------------------------
111 #if (EM_CORE == 1 && defined( DM_PARALLEL ))
112 CALL model_to_grid_config_rec ( nested_grid%id , model_config_rec , config_flags )
113 grid => nested_grid%intermediate_grid
114 # if defined(MOVE_NESTS) || (!defined(SGIALTIX))
116 CALL alloc_space_field ( grid, grid%id , 1 , 2 , .TRUE. , &
117 grid%sd31, grid%ed31, grid%sd32, grid%ed32, grid%sd33, grid%ed33, &
118 grid%sm31, grid%em31, grid%sm32, grid%em32, grid%sm33, grid%em33, &
119 grid%sm31x, grid%em31x, grid%sm32x, grid%em32x, grid%sm33x, grid%em33x, & ! x-xpose
120 grid%sm31y, grid%em31y, grid%sm32y, grid%em32y, grid%sm33y, grid%em33y & ! y-xpose
126 CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
127 CALL interp_domain_em_part1 ( grid , nested_grid%intermediate_grid, nested_grid, config_flags &
129 # include "actual_new_args.inc"
132 grid => nested_grid%intermediate_grid
133 CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
134 CALL interp_domain_em_part2 ( grid, nested_grid, config_flags &
136 # include "actual_new_args.inc"
140 grid => nested_grid%intermediate_grid
141 CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
142 # if defined(MOVE_NESTS) || (!defined(SGIALTIX))
143 CALL dealloc_space_field ( grid )
146 ! ------------------------------------------------------
147 ! End of Interpolation calls for EM CORE.
148 ! ------------------------------------------------------
149 ! ------------------------------------------------------
150 ! ------------------------------------------------------
151 ! Interpolation calls for NMM. (Placeholder)
152 ! ------------------------------------------------------
153 #if (NMM_CORE == 1 && NMM_NEST == 1)
154 !=======================================================================
155 ! Added for the NMM core. This is gopal's doing.
156 !=======================================================================
158 CALL model_to_grid_config_rec ( nested_grid%id , model_config_rec , config_flags )
159 grid => nested_grid%intermediate_grid
160 ! CALL alloc_space_field ( grid, grid%id , 1 , 2 , .TRUE. , &
161 #if defined(MOVE_NESTS) || (!defined(SGIALTIX))
162 CALL alloc_space_field ( grid, grid%id , 1 , 3 , .FALSE. , &
163 grid%sd31, grid%ed31, grid%sd32, grid%ed32, grid%sd33, grid%ed33, &
164 grid%sm31, grid%em31, grid%sm32, grid%em32, grid%sm33, grid%em33, &
165 grid%sm31x, grid%em31x, grid%sm32x, grid%em32x, grid%sm33x, grid%em33x, & ! x-xpose
166 grid%sm31y, grid%em31y, grid%sm32y, grid%em32y, grid%sm33y, grid%em33y & ! y-xpose
172 CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
174 CALL interp_domain_nmm_part1 ( grid , nested_grid%intermediate_grid, nested_grid, config_flags &
176 # include "actual_args.inc"
179 grid => nested_grid%intermediate_grid
180 CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
182 CALL interp_domain_nmm_part2 ( grid, nested_grid, config_flags &
184 # include "actual_args.inc"
188 grid => nested_grid%intermediate_grid
189 CALL model_to_grid_config_rec ( grid%id , model_config_rec , config_flags )
190 #if defined(MOVE_NESTS) || (!defined(SGIALTIX))
191 CALL dealloc_space_field ( grid )
194 ! ------------------------------------------------------------
195 ! End of gopal's doing
196 ! ------------------------------------------------------------
198 ! ------------------------------------------------------
199 ! End of Interpolation calls for NMM.
200 ! ------------------------------------------------------
201 ! ------------------------------------------------------
202 ! ------------------------------------------------------
203 ! Interpolation calls for COAMPS. (Placeholder)
204 ! ------------------------------------------------------
205 #if (COAMPS_CORE == 1)
207 ! ------------------------------------------------------
208 ! End of Interpolation calls for COAMPS.
209 ! ------------------------------------------------------
211 END SUBROUTINE med_interp_domain