[Dart-dev] DART/branches Revision: 12826

dart at ucar.edu dart at ucar.edu
Fri Sep 14 16:31:41 MDT 2018


hendric at ucar.edu
2018-09-14 16:31:41 -0600 (Fri, 14 Sep 2018)
138

Commiting what I have for the day.  Everything compiles,
but there is a array bound problem for the group ensemble
handle's copy array.




Modified: DART/branches/rma_distrib/assimilation_code/modules/utilities/mpi_utilities_mod.f90
===================================================================
--- DART/branches/rma_distrib/assimilation_code/modules/utilities/mpi_utilities_mod.f90	2018-09-14 19:43:02 UTC (rev 12825)
+++ DART/branches/rma_distrib/assimilation_code/modules/utilities/mpi_utilities_mod.f90	2018-09-14 22:31:41 UTC (rev 12826)
@@ -71,16 +71,16 @@
 ! this directory.  It is a sed script that comments in and out the interface
 ! block below.  Please leave the BLOCK comment lines unchanged.
 
-! !!SYSTEM_BLOCK_EDIT START COMMENTED_OUT
-! ! interface block for getting return code back from system() routine
-! interface
-!  function system(string)
-!   character(len=*) :: string
-!   integer :: system
-!  end function system
-! end interface
-! ! end block
-! !!SYSTEM_BLOCK_EDIT END COMMENTED_OUT
+ !!SYSTEM_BLOCK_EDIT START COMMENTED_IN
+ ! interface block for getting return code back from system() routine
+ interface
+  function system(string)
+   character(len=*) :: string
+   integer :: system
+  end function system
+ end interface
+ ! end block
+ !!SYSTEM_BLOCK_EDIT END COMMENTED_IN
 
 
 ! allow global sum to be computed for integers, r4, and r8s
@@ -2096,7 +2096,7 @@
 
 subroutine create_groups(my_group_size, my_comm)
 integer, intent(inout) :: my_group_size
-integer, intent(inout), optional :: my_comm
+integer, intent(out)   :: my_comm
 
 integer, allocatable :: group_members(:)
 integer :: i
@@ -2135,11 +2135,7 @@
 
 deallocate(group_members)! this is module global
 
-! JPH, NOT SURE WE NEED THIS, WE CAN PROBABLY GET AWAY WITH USING THE LOCAL COMMUNICATOR
-! 
-if (present(my_comm)) then
-   my_comm = my_group_comm
-endif 
+my_comm = my_group_comm
 
 end subroutine create_groups
 

Modified: DART/branches/rma_distrib/assimilation_code/modules/utilities/no_cray_win_mod.f90
===================================================================
--- DART/branches/rma_distrib/assimilation_code/modules/utilities/no_cray_win_mod.f90	2018-09-14 19:43:02 UTC (rev 12825)
+++ DART/branches/rma_distrib/assimilation_code/modules/utilities/no_cray_win_mod.f90	2018-09-14 22:31:41 UTC (rev 12826)
@@ -127,7 +127,8 @@
    ! create groups of MPI processors to store
    ! the ensemble mean
    call create_groups(group_size, group_comm)
-
+   print*, 'FINISHED - create_groups', group_size, group_comm
+   num_vars = state_ens_handle%num_vars
    ! Set up the ensemble storage for mean
    call init_ensemble_manager(group_mean_handle,               &
                               num_copies           = 1,        &
@@ -137,6 +138,8 @@
                               transpose_type_in    = 1,        & ! 1
                               mpi_comm             = group_comm)  
 
+   print*, 'FINISHED - init_ensemble_manager,  num_vars = ', num_vars
+
    call set_num_extra_copies(group_mean_handle, 0)
 
    ! temp_mean_handle is optionally returned when creating mean window.
@@ -155,15 +158,19 @@
    call my_vars_to_group_copies(mean_ens_handle,  &
                                 group_mean_handle, &
                                 label = 'my_vars_to_group_copies')
+   print*, 'FINISHED - my_vars_to_group_copies'
 
-
    !copies (num_copies, my_num_vars)
    mean_1d(:) = group_mean_handle%copies(1,:)
+   print*, 'FINISHED - assigning mean_1d'
 
    ! find out how many variables I have
    my_num_vars = state_ens_handle%num_vars/group_size
+   print*, 'FINISHED - assigning my_num_vars'
    call mpi_type_size(datasize, bytesize, ierr)
+   print*, 'FINISHED - mpi_type_size'
    window_size = my_num_vars*bytesize
+   print*, 'FINISHED - window_size'
 
    ! Need a simply contiguous piece of memory to pass to mpi_win_create
    ! Expose local memory to RMA operation by other processes in a communicator.
@@ -171,6 +178,7 @@
    !> and the window_size = num_vars/group_size
    call mpi_win_create(mean_1d, window_size, bytesize, MPI_INFO_NULL, &


More information about the Dart-dev mailing list