@@ -2,7 +2,6 @@ using Test
2
2
import ClimaComms
3
3
ClimaComms. @import_required_backends
4
4
using ClimaCore: Spaces, Geometry, Fields
5
- import ClimaComms
6
5
using ClimaLand
7
6
using ClimaLand: Domains, condition, SavingAffect, saving_initialize
8
7
@@ -285,10 +284,15 @@ end
285
284
" Checking NaNs in var3" ,
286
285
) (:info , " No NaNs found" ) ClimaLand. count_nans_state (Y)
287
286
288
- # Add some NaNs to the fields
289
- parent (var1)[1 ] = NaN
290
- parent (var2)[1 ] = NaN
291
- parent (var2)[2 ] = NaN
287
+ # Add some NaNs to the fields without scalar indexing
288
+ ArrayType = ClimaComms. array_type (ClimaComms. device ())
289
+ var1_copy = Array (parent (var1))
290
+ var1_copy[1 ] = NaN
291
+ parent (var1) .= ArrayType (var1_copy)
292
+ var2_copy = Array (parent (var1))
293
+ var2_copy[1 ] = NaN
294
+ var2_copy[2 ] = NaN
295
+ parent (var2) .= ArrayType (var2_copy)
292
296
293
297
# Count and log the number of NaNs in the state
294
298
@test_logs (:info , " Checking NaNs in var1" ) (:warn , " 1 NaNs found" ) (
299
303
" Checking NaNs in var3" ,
300
304
) (:info , " No NaNs found" ) ClimaLand. count_nans_state (Y)
301
305
306
+ # Test with a mask
307
+ mask_zeros = Fields. zeros (space)
308
+ @test_logs (:info , " Checking NaNs in var1" ) (:info , " No NaNs found" ) (
309
+ :info ,
310
+ " Checking NaNs in fieldvec" ,
311
+ ) (:info , " Checking NaNs in var2" ) (:info , " No NaNs found" ) (
312
+ :info ,
313
+ " Checking NaNs in var3" ,
314
+ ) (:info , " No NaNs found" ) ClimaLand. count_nans_state (Y, mask_zeros)
315
+
316
+ mask_ones = Fields. ones (space)
317
+ @test_logs (:info , " Checking NaNs in var1" ) (:warn , " 1 NaNs found" ) (
318
+ :info ,
319
+ " Checking NaNs in fieldvec" ,
320
+ ) (:info , " Checking NaNs in var2" ) (:warn , " 2 NaNs found" ) (
321
+ :info ,
322
+ " Checking NaNs in var3" ,
323
+ ) (:info , " No NaNs found" ) ClimaLand. count_nans_state (Y, mask_ones)
302
324
end
0 commit comments