@@ -241,59 +241,65 @@ function ConformalCubedSphereGrid(arch::AbstractArchitecture=CPU(), FT=Float64;
241
241
region_grids,
242
242
devices)
243
243
244
- fields = (:λᶜᶜᵃ , :φᶜᶜᵃ , :Azᶜᶜᵃ , :λᶠᶠᵃ , :φᶠᶠᵃ , :Azᶠᶠᵃ )
245
- LXs = (:Center , :Center , :Center , :Face , :Face , :Face )
246
- LYs = (:Center , :Center , :Center , :Face , :Face , :Face )
247
-
248
- for (field, LX, LY) in zip (fields, LXs, LYs)
249
- expr = quote
250
- $ (Symbol (field)) = Field {$(Symbol(LX)), $(Symbol(LY)), Nothing} ($ (grid))
251
-
252
- for region in 1 : number_of_regions ($ (grid))
253
- getregion ($ (Symbol (field)), region). data .= getregion ($ (grid), region).$ (Symbol (field))
254
- end
255
-
256
- if $ (horizontal_topology) == FullyConnected
257
- fill_halo_regions! ($ (Symbol (field)))
258
- end
244
+ λᶜᶜᵃ = Field ((Center, Center, Nothing), grid)
245
+ φᶜᶜᵃ = Field ((Center, Center, Nothing), grid)
246
+ Azᶜᶜᵃ = Field ((Center, Center, Nothing), grid)
247
+ λᶠᶠᵃ = Field ((Face, Face, Nothing), grid)
248
+ φᶠᶠᵃ = Field ((Face, Face, Nothing), grid)
249
+ Azᶠᶠᵃ = Field ((Face, Face, Nothing), grid)
250
+
251
+ for (field, name) in zip (( λᶜᶜᵃ, φᶜᶜᵃ, Azᶜᶜᵃ, λᶠᶠᵃ, φᶠᶠᵃ, Azᶠᶠᵃ),
252
+ (:λᶜᶜᵃ , :φᶜᶜᵃ , :Azᶜᶜᵃ , :λᶠᶠᵃ , :φᶠᶠᵃ , :Azᶠᶠᵃ ))
253
+
254
+ for region in 1 : number_of_regions (grid)
255
+ getregion (field, region). data .= getproperty (getregion (grid, region), name)
256
+ end
259
257
260
- for region in 1 : number_of_regions ($ (grid))
261
- getregion ($ (grid), region).$ (Symbol (field)) .= getregion ($ (Symbol (field)), region). data
262
- end
263
- end # quote
258
+ if horizontal_topology == FullyConnected
259
+ fill_halo_regions! (field)
260
+ end
264
261
265
- eval (expr)
262
+ for region in 1 : number_of_regions (grid)
263
+ getproperty (getregion (grid, region), name) .= getregion (field, region). data
264
+ end
266
265
end
267
266
268
- fields₁ = (:Δxᶜᶜᵃ , :Δxᶠᶜᵃ , :Δyᶠᶜᵃ , :λᶠᶜᵃ , :φᶠᶜᵃ , :Azᶠᶜᵃ , :Δxᶠᶠᵃ )
269
- LXs₁ = (:Center , :Face , :Face , :Face , :Face , :Face , :Face )
270
- LYs₁ = (:Center , :Center , :Center , :Center , :Center , :Center , :Face )
271
-
272
- fields₂ = (:Δyᶜᶜᵃ , :Δyᶜᶠᵃ , :Δxᶜᶠᵃ , :λᶜᶠᵃ , :φᶜᶠᵃ , :Azᶜᶠᵃ , :Δyᶠᶠᵃ )
273
- LXs₂ = (:Center , :Center , :Center , :Center , :Center , :Center , :Face )
274
- LYs₂ = (:Center , :Face , :Face , :Face , :Face , :Face , :Face )
275
-
276
- for (field₁, LX₁, LY₁, field₂, LX₂, LY₂) in zip (fields₁, LXs₁, LYs₁, fields₂, LXs₂, LYs₂)
277
- expr = quote
278
- $ (Symbol (field₁)) = Field {$(Symbol(LX₁)), $(Symbol(LY₁)), Nothing} ($ (grid))
279
- $ (Symbol (field₂)) = Field {$(Symbol(LX₂)), $(Symbol(LY₂)), Nothing} ($ (grid))
280
-
281
- for region in 1 : number_of_regions ($ (grid))
282
- getregion ($ (Symbol (field₁)), region). data .= getregion ($ (grid), region).$ (Symbol (field₁))
283
- getregion ($ (Symbol (field₂)), region). data .= getregion ($ (grid), region).$ (Symbol (field₂))
284
- end
285
-
286
- if $ (horizontal_topology) == FullyConnected
287
- fill_halo_regions! (($ (Symbol (field₁)), $ (Symbol (field₂))); signed = false )
288
- end
267
+ Δxᶜᶜᵃ = Field ((Center, Center, Nothing), grid)
268
+ Δxᶠᶜᵃ = Field ((Face, Center, Nothing), grid)
269
+ Δyᶠᶜᵃ = Field ((Face, Center, Nothing), grid)
270
+ λᶠᶜᵃ = Field ((Face, Center, Nothing), grid)
271
+ φᶠᶜᵃ = Field ((Face, Center, Nothing), grid)
272
+ Azᶠᶜᵃ = Field ((Face, Center, Nothing), grid)
273
+ Δxᶠᶠᵃ = Field ((Face, Face, Nothing), grid)
274
+
275
+ fields₁ = ( Δxᶜᶜᵃ, Δxᶠᶜᵃ, Δyᶠᶜᵃ, λᶠᶜᵃ, φᶠᶜᵃ, Azᶠᶜᵃ , Δxᶠᶠᵃ)
276
+ names₁ = (:Δxᶜᶜᵃ , :Δxᶠᶜᵃ , :Δyᶠᶜᵃ , :λᶠᶜᵃ , :φᶠᶜᵃ , :Azᶠᶜᵃ , :Δxᶠᶠᵃ )
277
+
278
+ Δyᶜᶜᵃ = Field ((Center, Center, Nothing), grid)
279
+ Δyᶜᶠᵃ = Field ((Center, Face, Nothing), grid)
280
+ Δxᶜᶠᵃ = Field ((Center, Face, Nothing), grid)
281
+ λᶜᶠᵃ = Field ((Center, Face, Nothing), grid)
282
+ φᶜᶠᵃ = Field ((Center, Face, Nothing), grid)
283
+ Azᶜᶠᵃ = Field ((Center, Face, Nothing), grid)
284
+ Δyᶠᶠᵃ = Field ((Face, Face, Nothing), grid)
285
+
286
+ fields₂ = ( Δyᶜᶜᵃ, Δyᶜᶠᵃ, Δxᶜᶠᵃ, λᶜᶠᵃ, φᶜᶠᵃ, Azᶜᶠᵃ , Δyᶠᶠᵃ)
287
+ names₂ = (:Δyᶜᶜᵃ , :Δyᶜᶠᵃ , :Δxᶜᶠᵃ , :λᶜᶠᵃ , :φᶜᶠᵃ , :Azᶜᶠᵃ , :Δyᶠᶠᵃ )
288
+
289
+ for (field₁, field₂, name₁, name₂) in zip (fields₁, fields₂, names₁, names₂)
290
+ for region in 1 : number_of_regions (grid)
291
+ getregion (field₁, region). data .= getproperty (getregion (grid, region), name₁)
292
+ getregion (field₂, region). data .= getproperty (getregion (grid, region), name₂)
293
+ end
289
294
290
- for region in 1 : number_of_regions ($ (grid))
291
- getregion ($ (grid), region).$ (Symbol (field₁)) .= getregion ($ (Symbol (field₁)), region). data
292
- getregion ($ (grid), region).$ (Symbol (field₂)) .= getregion ($ (Symbol (field₂)), region). data
293
- end
294
- end # quote
295
+ if horizontal_topology == FullyConnected
296
+ fill_halo_regions! (field₁, field₂; signed = false )
297
+ end
295
298
296
- eval (expr)
299
+ for region in 1 : number_of_regions (grid)
300
+ getproperty (getregion (grid, region), name₁) .= getregion (field₁, region). data
301
+ getproperty (getregion (grid, region), name₂) .= getregion (field₂, region). data
302
+ end
297
303
end
298
304
299
305
# ##################################################
0 commit comments