6 SUBROUTINE init_module_dm
7 END SUBROUTINE init_module_dm
9 REAL FUNCTION wrf_dm_max_real ( inval )
12 wrf_dm_max_real = inval
13 END FUNCTION wrf_dm_max_real
15 REAL FUNCTION wrf_dm_min_real ( inval )
18 wrf_dm_min_real = inval
19 END FUNCTION wrf_dm_min_real
21 SUBROUTINE wrf_dm_min_reals ( inval, retval, n )
23 INTEGER, INTENT(IN) :: n
24 REAL, INTENT(IN) :: inval(:)
25 REAL, INTENT(OUT) :: retval(:)
27 END SUBROUTINE wrf_dm_min_reals
29 REAL FUNCTION wrf_dm_sum_real ( inval )
32 wrf_dm_sum_real = inval
33 END FUNCTION wrf_dm_sum_real
35 SUBROUTINE wrf_dm_sum_reals ( inval, retval )
37 REAL, INTENT(IN) :: inval(:)
38 REAL, INTENT(OUT) :: retval(:)
40 END SUBROUTINE wrf_dm_sum_reals
42 INTEGER FUNCTION wrf_dm_sum_integer ( inval )
45 wrf_dm_sum_integer = inval
46 END FUNCTION wrf_dm_sum_integer
48 SUBROUTINE wrf_dm_maxval ( val, idex, jdex )
53 END SUBROUTINE wrf_dm_maxval
55 SUBROUTINE wrf_dm_minval ( val, idex, jdex )
60 END SUBROUTINE wrf_dm_minval
63 SUBROUTINE wrf_dm_move_nest ( parent, nest, dx, dy )
65 TYPE (domain), INTENT(INOUT) :: parent, nest
66 INTEGER, INTENT(IN) :: dx,dy
68 END SUBROUTINE wrf_dm_move_nest
72 !=========================================================================
74 ! These are stub functions that do the right thing (usually nothing)
75 ! in case DM_PARALLEL is not compiled for.
76 ! This file, src/module_dm_stubs.F is copied to src/module_dm.F when
78 ! If, on the other hand, a DM package is specified, the module_dm.F
79 ! provided with that package (e.g. RSL) is copied from /external/RSL/module_dm.F
80 ! into src/module_dm.F.
81 ! It is important to recognize this, because changes directly to src/module_dm.F
84 LOGICAL FUNCTION wrf_dm_on_monitor()
85 wrf_dm_on_monitor = .true.
86 END FUNCTION wrf_dm_on_monitor
88 INTEGER FUNCTION wrf_dm_monitor_rank()
89 wrf_dm_monitor_rank = 0
90 END FUNCTION wrf_dm_monitor_rank
92 SUBROUTINE wrf_get_myproc( myproc )
97 END SUBROUTINE wrf_get_myproc
99 SUBROUTINE wrf_get_nproc( nprocs )
104 END SUBROUTINE wrf_get_nproc
106 SUBROUTINE wrf_get_nprocx( nprocs )
111 END SUBROUTINE wrf_get_nprocx
113 SUBROUTINE wrf_get_nprocy( nprocs )
118 END SUBROUTINE wrf_get_nprocy
120 SUBROUTINE wrf_dm_bcast_string ( buf , size )
125 END SUBROUTINE wrf_dm_bcast_string
127 SUBROUTINE wrf_dm_bcast_bytes ( buf , size )
132 END SUBROUTINE wrf_dm_bcast_bytes
134 SUBROUTINE wrf_dm_bcast_integer( BUF, N1 )
139 END SUBROUTINE wrf_dm_bcast_integer
141 SUBROUTINE wrf_dm_bcast_real( BUF, N1 )
146 END SUBROUTINE wrf_dm_bcast_real
148 SUBROUTINE wrf_dm_bcast_logical( BUF, N1 )
153 END SUBROUTINE wrf_dm_bcast_logical
155 SUBROUTINE wrf_dm_halo ( domdesc , comms , stencil_id )
157 INTEGER domdesc , comms(*) , stencil_id
159 END SUBROUTINE wrf_dm_halo
161 SUBROUTINE wrf_dm_boundary ( domdesc , comms , period_id , &
162 periodic_x , periodic_y )
164 INTEGER domdesc , comms(*) , period_id
165 LOGICAL , INTENT(IN) :: periodic_x, periodic_y
167 END SUBROUTINE wrf_dm_boundary
169 SUBROUTINE wrf_dm_xpose_z2x ( domdesc , comms , xpose_id )
171 INTEGER domdesc , comms(*), xpose_id
173 END SUBROUTINE wrf_dm_xpose_z2x
174 SUBROUTINE wrf_dm_xpose_x2y ( domdesc , comms , xpose_id )
176 INTEGER domdesc , comms(*), xpose_id
178 END SUBROUTINE wrf_dm_xpose_x2y
179 SUBROUTINE wrf_dm_xpose_y2z ( domdesc , comms , xpose_id )
181 INTEGER domdesc , comms(*), xpose_id
183 END SUBROUTINE wrf_dm_xpose_y2z
185 SUBROUTINE wrf_dm_define_comms ( grid )
188 TYPE(domain) , INTENT (INOUT) :: grid
190 END SUBROUTINE wrf_dm_define_comms
192 SUBROUTINE wrf_get_dm_communicator ( communicator )
194 INTEGER , INTENT(OUT) :: communicator
197 END SUBROUTINE wrf_get_dm_communicator
199 SUBROUTINE wrf_get_dm_iocommunicator ( iocommunicator )
201 INTEGER , INTENT(OUT) :: iocommunicator
204 END SUBROUTINE wrf_get_dm_iocommunicator
206 SUBROUTINE wrf_dm_shutdown
208 END SUBROUTINE wrf_dm_shutdown
211 END SUBROUTINE wrf_abort
213 SUBROUTINE wrf_patch_to_global_real (buf,globbuf,domdesc,ndim,&
214 ids,ide,jds,jde,kds,kde,&
215 ims,ime,jms,jme,kms,kme,&
216 ips,ipe,jps,jpe,kps,kpe )
218 INTEGER ids,ide,jds,jde,kds,kde,&
219 ims,ime,jms,jme,kms,kme,&
220 ips,ipe,jps,jpe,kps,kpe
221 INTEGER fid,domdesc,ndim,glen(3),llen(3)
225 END SUBROUTINE wrf_patch_to_global_real
227 SUBROUTINE wrf_global_to_patch_real (globbuf,buf,domdesc,ndim,&
228 ids,ide,jds,jde,kds,kde,&
229 ims,ime,jms,jme,kms,kme,&
230 ips,ipe,jps,jpe,kps,kpe )
232 INTEGER ids,ide,jds,jde,kds,kde,&
233 ims,ime,jms,jme,kms,kme,&
234 ips,ipe,jps,jpe,kps,kpe
235 INTEGER fid,domdesc,ndim,glen(3),llen(3)
239 END SUBROUTINE wrf_global_to_patch_real
242 SUBROUTINE wrf_patch_to_global_double (buf,globbuf,domdesc,ndim,&
243 ids,ide,jds,jde,kds,kde,&
244 ims,ime,jms,jme,kms,kme,&
245 ips,ipe,jps,jpe,kps,kpe )
247 INTEGER ids,ide,jds,jde,kds,kde,&
248 ims,ime,jms,jme,kms,kme,&
249 ips,ipe,jps,jpe,kps,kpe
250 INTEGER fid,domdesc,ndim,glen(3),llen(3)
251 DOUBLE PRECISION globbuf(*)
252 DOUBLE PRECISION buf(*)
254 END SUBROUTINE wrf_patch_to_global_double
256 SUBROUTINE wrf_global_to_patch_double (globbuf,buf,domdesc,ndim,&
257 ids,ide,jds,jde,kds,kde,&
258 ims,ime,jms,jme,kms,kme,&
259 ips,ipe,jps,jpe,kps,kpe )
261 INTEGER ids,ide,jds,jde,kds,kde,&
262 ims,ime,jms,jme,kms,kme,&
263 ips,ipe,jps,jpe,kps,kpe
264 INTEGER fid,domdesc,ndim,glen(3),llen(3)
265 DOUBLE PRECISION globbuf(*)
266 DOUBLE PRECISION buf(*)
268 END SUBROUTINE wrf_global_to_patch_double
270 SUBROUTINE wrf_patch_to_global_integer (buf,globbuf,domdesc,ndim,&
271 ids,ide,jds,jde,kds,kde,&
272 ims,ime,jms,jme,kms,kme,&
273 ips,ipe,jps,jpe,kps,kpe )
275 INTEGER ids,ide,jds,jde,kds,kde,&
276 ims,ime,jms,jme,kms,kme,&
277 ips,ipe,jps,jpe,kps,kpe
278 INTEGER fid,domdesc,ndim,glen(3),llen(3)
282 END SUBROUTINE wrf_patch_to_global_integer
284 SUBROUTINE wrf_global_to_patch_integer (globbuf,buf,domdesc,ndim,&
285 ids,ide,jds,jde,kds,kde,&
286 ims,ime,jms,jme,kms,kme,&
287 ips,ipe,jps,jpe,kps,kpe )
289 INTEGER ids,ide,jds,jde,kds,kde,&
290 ims,ime,jms,jme,kms,kme,&
291 ips,ipe,jps,jpe,kps,kpe
292 INTEGER fid,domdesc,ndim,glen(3),llen(3)
296 END SUBROUTINE wrf_global_to_patch_integer
298 SUBROUTINE wrf_patch_to_global_logical (buf,globbuf,domdesc,ndim,&
299 ids,ide,jds,jde,kds,kde,&
300 ims,ime,jms,jme,kms,kme,&
301 ips,ipe,jps,jpe,kps,kpe )
303 INTEGER ids,ide,jds,jde,kds,kde,&
304 ims,ime,jms,jme,kms,kme,&
305 ips,ipe,jps,jpe,kps,kpe
306 INTEGER fid,domdesc,ndim,glen(3),llen(3)
310 END SUBROUTINE wrf_patch_to_global_logical
312 SUBROUTINE wrf_global_to_patch_LOGICAL (globbuf,buf,domdesc,ndim,&
313 ids,ide,jds,jde,kds,kde,&
314 ims,ime,jms,jme,kms,kme,&
315 ips,ipe,jps,jpe,kps,kpe )
317 INTEGER ids,ide,jds,jde,kds,kde,&
318 ims,ime,jms,jme,kms,kme,&
319 ips,ipe,jps,jpe,kps,kpe
320 INTEGER fid,domdesc,ndim,glen(3),llen(3)
324 END SUBROUTINE wrf_global_to_patch_LOGICAL