da_wv_patch_to_global_3d.inc
References to this file elsewhere.
1 subroutine da_wv_patch_to_global_3d(vlocal, vglobal, &
2 domdesc, mz, &
3 ids, ide, jds, jde, kds, &
4 ims, ime, jms, jme, kms, &
5 ips, ipe, jps, jpe, kps)
6
7 !----------------------------------------------------------------------
8 ! Purpose: Gathers local 3D array vlocal into global array vglobal.
9 ! Assumes that "k" is not
10 ! decomposed. End indicies in the "k" dimension are inferred from
11 ! mz, which can be less than kde.
12 !
13 ! Must be called by all MPI tasks.
14 !----------------------------------------------------------------------
15
16 implicit none
17
18 real, intent(in ) :: vlocal(:,:,:)
19 real, intent( out) :: vglobal(:,:,:)
20 integer, intent(in ) :: domdesc
21 integer, intent(in ) :: mz
22 integer, intent(in ) :: ids, ide, jds, jde, kds, &
23 ims, ime, jms, jme, kms, &
24 ips, ipe, jps, jpe, kps
25 #ifdef DM_PARALLEL
26 ! Local declarations
27 character(len=3) :: ordering, stagger
28 integer :: kde, kme, kpe
29 stagger = 'xyz' ! This hack will keep wrf_patch_to_global_*() from
30 ! increasing DE[123]. Recall that wrfvar arrays are
31 ! all on A-grid.
32 ordering = 'xyz'
33 if (mz > 0) then
34 kde = kds + mz - 1
35 kme = kde
36 kpe = kde
37 call wrf_patch_to_global_real (vlocal, vglobal, domdesc, &
38 trim(stagger), trim(ordering), &
39 ids, ide, jds, jde, kds, kde, &
40 ims, ime, jms, jme, kms, kme, &
41 ips, ipe, jps, jpe, kps, kpe)
42 end if
43 #endif
44
45 end subroutine da_wv_patch_to_global_3d
46
47