@@ -332,8 +332,6 @@ subroutine filter_assim(ens_handle, obs_ens_handle, obs_seq, keys, &
332
332
real (r8 ) :: vertvalue_obs_in_localization_coord, whichvert_real
333
333
real (r8 ), allocatable :: close_obs_dist(:)
334
334
real (r8 ), allocatable :: close_state_dist(:)
335
- real (r8 ), allocatable :: last_close_obs_dist(:)
336
- real (r8 ), allocatable :: last_close_state_dist(:)
337
335
338
336
integer (i8) :: state_index
339
337
integer (i8), allocatable :: my_state_indx(:)
@@ -351,8 +349,6 @@ subroutine filter_assim(ens_handle, obs_ens_handle, obs_seq, keys, &
351
349
integer :: istatus, localization_unit
352
350
integer , allocatable :: close_obs_ind(:)
353
351
integer , allocatable :: close_state_ind(:)
354
- integer , allocatable :: last_close_obs_ind(:)
355
- integer , allocatable :: last_close_state_ind(:)
356
352
integer , allocatable :: my_obs_kind(:)
357
353
integer , allocatable :: my_obs_type(:)
358
354
integer , allocatable :: my_state_kind(:)
@@ -376,19 +372,15 @@ subroutine filter_assim(ens_handle, obs_ens_handle, obs_seq, keys, &
376
372
377
373
! allocate rather than dump all this on the stack
378
374
allocate (close_obs_dist( obs_ens_handle% my_num_vars), &
379
- last_close_obs_dist(obs_ens_handle% my_num_vars), &
380
375
close_obs_ind( obs_ens_handle% my_num_vars), &
381
- last_close_obs_ind( obs_ens_handle% my_num_vars), &
382
376
vstatus( obs_ens_handle% my_num_vars), &
383
377
my_obs_indx( obs_ens_handle% my_num_vars), &
384
378
my_obs_kind( obs_ens_handle% my_num_vars), &
385
379
my_obs_type( obs_ens_handle% my_num_vars), &
386
380
my_obs_loc( obs_ens_handle% my_num_vars))
387
381
388
382
allocate (close_state_dist( ens_handle% my_num_vars), &
389
- last_close_state_dist(ens_handle% my_num_vars), &
390
383
close_state_ind( ens_handle% my_num_vars), &
391
- last_close_state_ind( ens_handle% my_num_vars), &
392
384
my_state_indx( ens_handle% my_num_vars), &
393
385
my_state_kind( ens_handle% my_num_vars), &
394
386
my_state_loc( ens_handle% my_num_vars))
@@ -544,10 +536,6 @@ subroutine filter_assim(ens_handle, obs_ens_handle, obs_seq, keys, &
544
536
last_base_states_loc = set_location_missing()
545
537
last_num_close_obs = - 1
546
538
last_num_close_states = - 1
547
- last_close_obs_ind(:) = - 1
548
- last_close_state_ind(:) = - 1
549
- last_close_obs_dist(:) = 888888.0_r8 ! something big, not small
550
- last_close_state_dist(:) = 888888.0_r8 ! ditto
551
539
num_close_obs_cached = 0
552
540
num_close_states_cached = 0
553
541
num_close_obs_calls_made = 0
@@ -676,8 +664,8 @@ subroutine filter_assim(ens_handle, obs_ens_handle, obs_seq, keys, &
676
664
! Do get_close_obs first, even though state space increments are computed before obs increments.
677
665
call get_close_obs_cached(gc_obs, base_obs_loc, base_obs_type, &
678
666
my_obs_loc, my_obs_kind, my_obs_type, num_close_obs, close_obs_ind, close_obs_dist, &
679
- ens_handle, last_base_obs_loc, last_num_close_obs, last_close_obs_ind, &
680
- last_close_obs_dist, num_close_obs_cached, num_close_obs_calls_made)
667
+ ens_handle, last_base_obs_loc, last_num_close_obs, num_close_obs_cached, &
668
+ num_close_obs_calls_made)
681
669
682
670
! set the cutoff default, keep a copy of the original value, and avoid
683
671
! looking up the cutoff in a list if the incoming obs is an identity ob
@@ -697,8 +685,8 @@ subroutine filter_assim(ens_handle, obs_ens_handle, obs_seq, keys, &
697
685
! Find state variables on my process that are close to observation being assimilated
698
686
call get_close_state_cached(gc_state, base_obs_loc, base_obs_type, &
699
687
my_state_loc, my_state_kind, my_state_indx, num_close_states, close_state_ind, close_state_dist, &
700
- ens_handle, last_base_states_loc, last_num_close_states, last_close_state_ind, &
701
- last_close_state_dist, num_close_states_cached, num_close_states_calls_made)
688
+ ens_handle, last_base_states_loc, last_num_close_states, num_close_states_cached, &
689
+ num_close_states_calls_made)
702
690
! call test_close_obs_dist(close_state_dist, num_close_states, i)
703
691
704
692
! Loop through to update each of my state variables that is potentially close
@@ -811,20 +799,16 @@ subroutine filter_assim(ens_handle, obs_ens_handle, obs_seq, keys, &
811
799
812
800
! deallocate space
813
801
deallocate (close_obs_dist, &
814
- last_close_obs_dist, &
815
802
my_obs_indx, &
816
803
my_obs_kind, &
817
804
my_obs_type, &
818
805
close_obs_ind, &
819
- last_close_obs_ind, &
820
806
vstatus, &
821
807
my_obs_loc)
822
808
823
809
deallocate (close_state_dist, &
824
- last_close_state_dist, &
825
810
my_state_indx, &
826
811
close_state_ind, &
827
- last_close_state_ind, &
828
812
my_state_kind, &
829
813
my_state_loc)
830
814
@@ -2575,8 +2559,8 @@ end subroutine get_my_obs_loc
2575
2559
2576
2560
subroutine get_close_obs_cached (gc_obs , base_obs_loc , base_obs_type , &
2577
2561
my_obs_loc , my_obs_kind , my_obs_type , num_close_obs , close_obs_ind , close_obs_dist , &
2578
- ens_handle , last_base_obs_loc , last_num_close_obs , last_close_obs_ind , &
2579
- last_close_obs_dist , num_close_obs_cached , num_close_obs_calls_made )
2562
+ ens_handle , last_base_obs_loc , last_num_close_obs , num_close_obs_cached , &
2563
+ num_close_obs_calls_made )
2580
2564
2581
2565
type (get_close_type), intent (in ) :: gc_obs
2582
2566
type (location_type), intent (inout ) :: base_obs_loc, my_obs_loc(:)
@@ -2586,8 +2570,6 @@ subroutine get_close_obs_cached(gc_obs, base_obs_loc, base_obs_type, &
2586
2570
type (ensemble_type), intent (in ) :: ens_handle
2587
2571
type (location_type), intent (inout ) :: last_base_obs_loc
2588
2572
integer , intent (inout ) :: last_num_close_obs
2589
- integer , intent (inout ) :: last_close_obs_ind(:)
2590
- real (r8 ), intent (inout ) :: last_close_obs_dist(:)
2591
2573
integer , intent (inout ) :: num_close_obs_cached, num_close_obs_calls_made
2592
2574
2593
2575
! This logic could be arranged to make code less redundant
@@ -2598,8 +2580,6 @@ subroutine get_close_obs_cached(gc_obs, base_obs_loc, base_obs_type, &
2598
2580
else
2599
2581
if (base_obs_loc == last_base_obs_loc) then
2600
2582
num_close_obs = last_num_close_obs
2601
- close_obs_ind(:) = last_close_obs_ind(:)
2602
- close_obs_dist(:) = last_close_obs_dist(:)
2603
2583
num_close_obs_cached = num_close_obs_cached + 1
2604
2584
else
2605
2585
call get_close_obs(gc_obs, base_obs_loc, base_obs_type, &
@@ -2608,8 +2588,6 @@ subroutine get_close_obs_cached(gc_obs, base_obs_loc, base_obs_type, &
2608
2588
2609
2589
last_base_obs_loc = base_obs_loc
2610
2590
last_num_close_obs = num_close_obs
2611
- last_close_obs_ind(:) = close_obs_ind(:)
2612
- last_close_obs_dist(:) = close_obs_dist(:)
2613
2591
num_close_obs_calls_made = num_close_obs_calls_made + 1
2614
2592
endif
2615
2593
endif
@@ -2622,8 +2600,8 @@ end subroutine get_close_obs_cached
2622
2600
2623
2601
subroutine get_close_state_cached (gc_state , base_obs_loc , base_obs_type , &
2624
2602
my_state_loc , my_state_kind , my_state_indx , num_close_states , close_state_ind , close_state_dist , &
2625
- ens_handle , last_base_states_loc , last_num_close_states , last_close_state_ind , &
2626
- last_close_state_dist , num_close_states_cached , num_close_states_calls_made )
2603
+ ens_handle , last_base_states_loc , last_num_close_states , num_close_states_cached , &
2604
+ num_close_states_calls_made )
2627
2605
2628
2606
type (get_close_type), intent (in ) :: gc_state
2629
2607
type (location_type), intent (inout ) :: base_obs_loc, my_state_loc(:)
@@ -2634,8 +2612,6 @@ subroutine get_close_state_cached(gc_state, base_obs_loc, base_obs_type, &
2634
2612
type (ensemble_type), intent (in ) :: ens_handle
2635
2613
type (location_type), intent (inout ) :: last_base_states_loc
2636
2614
integer , intent (inout ) :: last_num_close_states
2637
- integer , intent (inout ) :: last_close_state_ind(:)
2638
- real (r8 ), intent (inout ) :: last_close_state_dist(:)
2639
2615
integer , intent (inout ) :: num_close_states_cached, num_close_states_calls_made
2640
2616
2641
2617
! This logic could be arranged to make code less redundant
@@ -2646,8 +2622,6 @@ subroutine get_close_state_cached(gc_state, base_obs_loc, base_obs_type, &
2646
2622
else
2647
2623
if (base_obs_loc == last_base_states_loc) then
2648
2624
num_close_states = last_num_close_states
2649
- close_state_ind(:) = last_close_state_ind(:)
2650
- close_state_dist(:) = last_close_state_dist(:)
2651
2625
num_close_states_cached = num_close_states_cached + 1
2652
2626
else
2653
2627
call get_close_state(gc_state, base_obs_loc, base_obs_type, &
@@ -2656,8 +2630,6 @@ subroutine get_close_state_cached(gc_state, base_obs_loc, base_obs_type, &
2656
2630
2657
2631
last_base_states_loc = base_obs_loc
2658
2632
last_num_close_states = num_close_states
2659
- last_close_state_ind(:) = close_state_ind(:)
2660
- last_close_state_dist(:) = close_state_dist(:)
2661
2633
num_close_states_calls_made = num_close_states_calls_made + 1
2662
2634
endif
2663
2635
endif
0 commit comments