1 subroutine da_copy_dims(grid)
3 !---------------------------------------------------------------------------
4 ! Purpose: Copy dimensioning information from grid structure.
5 !---------------------------------------------------------------------------
9 type(domain), intent(inout) :: grid
11 if (trace_use_dull) call da_trace_entry("da_copy_dims")
13 ! De-reference dimension information stored in the grid data structure.
36 ! Indices for yz decomposition
38 grid%xp%idsx = grid%sd31
39 grid%xp%idex = grid%ed31 - 1
40 grid%xp%jdsx = grid%sd32
41 grid%xp%jdex = grid%ed32 - 1
42 grid%xp%kdsx = grid%sd33
43 grid%xp%kdex = grid%ed33 - 1
45 grid%xp%imsx = grid%sm31x
46 grid%xp%imex = grid%em31x
47 grid%xp%jmsx = grid%sm32x
48 grid%xp%jmex = grid%em32x
49 grid%xp%kmsx = grid%sm33x
50 grid%xp%kmex = grid%em33x
52 grid%xp%itsx = grid%sp31x
53 grid%xp%itex = grid%ep31x
54 grid%xp%jtsx = grid%sp32x
55 grid%xp%jtex = grid%ep32x
56 grid%xp%ktsx = grid%sp33x
57 grid%xp%ktex = grid%ep33x
59 grid%xp%ipsx = grid%sp31x
60 grid%xp%ipex = grid%ep31x
61 grid%xp%jpsx = grid%sp32x
62 grid%xp%jpex = grid%ep32x
63 grid%xp%kpsx = grid%sp33x
64 grid%xp%kpex = grid%ep33x
66 ! Indices for xz decomposition
68 grid%xp%idsy = grid%sd31
69 grid%xp%idey = grid%ed31 - 1
70 grid%xp%jdsy = grid%sd32
71 grid%xp%jdey = grid%ed32 - 1
72 grid%xp%kdsy = grid%sd33
73 grid%xp%kdey = grid%ed33 - 1
75 grid%xp%imsy = grid%sm31y
76 grid%xp%imey = grid%em31y
77 grid%xp%jmsy = grid%sm32y
78 grid%xp%jmey = grid%em32y
79 grid%xp%kmsy = grid%sm33y
80 grid%xp%kmey = grid%em33y
82 grid%xp%itsy = grid%sp31y
83 grid%xp%itey = grid%ep31y
84 grid%xp%jtsy = grid%sp32y
85 grid%xp%jtey = grid%ep32y
86 grid%xp%ktsy = grid%sp33y
87 grid%xp%ktey = grid%ep33y
89 grid%xp%ipsy = grid%sp31y
90 grid%xp%ipey = grid%ep31y
91 grid%xp%jpsy = grid%sp32y
92 grid%xp%jpey = grid%ep32y
93 grid%xp%kpsy = grid%sp33y
94 grid%xp%kpey = grid%ep33y
96 if (ipe > ide) ipe = ide
97 if (jpe > jde) jpe = jde
98 if (kpe > kde) kpe = kde
100 ! Indices for yz decomposition
102 if (grid%xp%itex > ide) grid%xp%itex = ide
103 if (grid%xp%jtex > jde) grid%xp%jtex = jde
104 if (grid%xp%ktex > kde) grid%xp%ktex = kde
106 if (grid%xp%ipex > ide) grid%xp%ipex = ide
107 if (grid%xp%jpex > jde) grid%xp%jpex = jde
108 if (grid%xp%kpex > kde) grid%xp%kpex = kde
110 ! Indices for xz decomposition
112 if (grid%xp%itey > ide) grid%xp%itey = ide
113 if (grid%xp%jtey > jde) grid%xp%jtey = jde
114 if (grid%xp%ktey > kde) grid%xp%ktey = kde
116 if (grid%xp%ipey > ide) grid%xp%ipey = ide
117 if (grid%xp%jpey > jde) grid%xp%jpey = jde
118 if (grid%xp%kpey > kde) grid%xp%kpey = kde
120 ! Copy grid%xpose dimensions from grid structure to grid%xp structure.
122 ! Indices for xy decomposition
145 if (print_detail_parallel) then
146 write(unit=stdout, fmt='(2(a, i4, 5x))') &
147 'grid%xp%ids =', grid%xp%ids , 'grid%xp%ide =', grid%xp%ide , &
148 'grid%xp%jds =', grid%xp%jds , 'grid%xp%jde =', grid%xp%jde , &
149 'grid%xp%kds =', grid%xp%kds , 'grid%xp%kde =', grid%xp%kde
150 write(unit=stdout, fmt='(//)')
152 write(unit=stdout, fmt='(2(a, i4, 5x))') &
153 'grid%xp%ims =', grid%xp%ims , 'grid%xp%ime =', grid%xp%ime , &
154 'grid%xp%jms =', grid%xp%jms , 'grid%xp%jme =', grid%xp%jme , &
155 'grid%xp%kms =', grid%xp%kms , 'grid%xp%kme =', grid%xp%kme
156 write(unit=stdout, fmt='(//)')
158 write(unit=stdout, fmt='(2(a, i4, 5x))') &
159 'grid%xp%ips =', grid%xp%ips , 'grid%xp%ipe =', grid%xp%ipe , &
160 'grid%xp%jps =', grid%xp%jps , 'grid%xp%jpe =', grid%xp%jpe , &
161 'grid%xp%kps =', grid%xp%kps , 'grid%xp%kpe =', grid%xp%kpe
162 write(unit=stdout, fmt='(//)')
164 write(unit=stdout, fmt='(2(a, i4, 5x))') &
165 'grid%xp%imsx =', grid%xp%imsx, 'grid%xp%imex=', grid%xp%imex, &
166 'grid%xp%jmsx =', grid%xp%jmsx, 'grid%xp%jmex=', grid%xp%jmex, &
167 'grid%xp%kmsx =', grid%xp%kmsx, 'grid%xp%kmex=', grid%xp%kmex
168 write(unit=stdout, fmt='(//)')
170 write(unit=stdout, fmt='(2(a, i4, 5x))') &
171 'grid%xp%ipsx =', grid%xp%ipsx, 'grid%xp%ipex=', grid%xp%ipex, &
172 'grid%xp%jpsx =', grid%xp%jpsx, 'grid%xp%jpex=', grid%xp%jpex, &
173 'grid%xp%kpsx =', grid%xp%kpsx, 'grid%xp%kpex=', grid%xp%kpex
174 write(unit=stdout, fmt='(//)')
176 write(unit=stdout, fmt='(2(a, i4, 5x))') &
177 'grid%xp%imsy =', grid%xp%imsy, 'grid%xp%imey=', grid%xp%imey, &
178 'grid%xp%jmsy =', grid%xp%jmsy, 'grid%xp%jmey=', grid%xp%jmey, &
179 'grid%xp%kmsy =', grid%xp%kmsy, 'grid%xp%kmey=', grid%xp%kmey
180 write(unit=stdout, fmt='(//)')
182 write(unit=stdout, fmt='(2(a, i4, 5x))') &
183 'grid%xp%ipsy =', grid%xp%ipsy, 'grid%xp%ipey=', grid%xp%ipey, &
184 'grid%xp%jpsy =', grid%xp%jpsy, 'grid%xp%jpey=', grid%xp%jpey, &
185 'grid%xp%kpsy =', grid%xp%kpsy, 'grid%xp%kpey=', grid%xp%kpey
188 if (trace_use_dull) call da_trace_exit("da_copy_dims")
190 end subroutine da_copy_dims