























































































































 


































































































































































 























































































































































































 





















































 










 








































































































































































































































 










                                
                                

                                
                                

                                
                                

                                





































module cctk_Reduction
  implicit none
  
  interface

     subroutine CCTK_ReductionHandle (ierr, reduction)
       implicit none
       integer      ierr
       character(*) reduction
     end subroutine CCTK_ReductionHandle

     subroutine CCTK_ReductionArrayHandle (ierr, reduction)
       implicit none
       integer      ierr
       character(*) reduction
     end subroutine CCTK_ReductionArrayHandle
     
     







     
     subroutine CCTK_ReduceOperator (operator, operator_length, handle)
       implicit none
       character(*) operator
       integer      operator_length
       integer      handle
     end subroutine CCTK_ReduceOperator
     
     subroutine CCTK_NumReduceOperators (num_operators)
       implicit none
       integer num_operators
     end subroutine CCTK_NumReduceOperators
     
     subroutine CCTK_ReduceLocalArrays (ierr, &
          N_dims, &
          operator_handle, &
          param_table_handle, &
          N_input_arrays, &
          input_array_dims, &
          input_array_type_codes, &
          input_arrays, &
          M_output_numbers, &
          output_number_type_codes, &
          output_numbers)
       implicit none
       integer               ierr
       integer               N_dims
       integer               operator_handle
       integer               param_table_handle
       integer               N_input_arrays
       INTEGER*4              input_array_dims(N_input_arrays)
       INTEGER*4              input_array_type_codes(N_input_arrays)
       integer*8 input_arrays(N_input_arrays)
       integer               M_output_numbers
       INTEGER*4              output_number_type_codes(M_output_numbers)
       integer*8          output_numbers(M_output_numbers)
     end subroutine CCTK_ReduceLocalArrays
     
     subroutine CCTK_LocalArrayReductionHandle (ierr, reduction)
       implicit none
       integer      ierr
       character(*) reduction
     end subroutine CCTK_LocalArrayReductionHandle
     
     







     
     subroutine CCTK_LocalArrayReduceOperator &
          (operator, operator_length, handle)
       implicit none
       character(*) operator
       integer      operator_length
       integer      handle
     end subroutine CCTK_LocalArrayReduceOperator
     
     




     
     subroutine CCTK_ReduceGridArrays (ierr, cctkGH, &
          dest_proc, &
          local_reduce_handle, &
          param_table_handle, &
          N_input_arrays, &
          input_array_variable_indices, &
          M_output_values, &
          output_value_type_codes, &
          output_values)
       implicit none
       integer               ierr
       integer*8 cctkGH
       integer               dest_proc
       integer               local_reduce_handle
       integer               param_table_handle
       integer               N_input_arrays
       INTEGER*4              input_array_variable_indices(N_input_arrays)
       integer               M_output_values
       INTEGER*4              output_value_type_codes(M_output_values)
       integer*8          output_values(M_output_values)
     end subroutine CCTK_ReduceGridArrays
     
     subroutine CCTK_GridArrayReductionOperator (operator, operator_length)
       implicit none
       character(*) operator
       integer      operator_length
     end subroutine CCTK_GridArrayReductionOperator
     
     




     












     













     












     













     














     















     
  end interface
  
  external CCTK_Reduce
  external CCTK_Reduce1
  external CCTK_ReduceLocalScalar
  external CCTK_ReduceLocalArray1D
  external CCTK_ReduceLocScalar
  external CCTK_ReduceLocArrayToArray1D
  external CCTK_ReduceLocArrayToArray2D
  external CCTK_ReduceLocArrayToArray3D
  external CCTK_ReduceArray
  
end module cctk_Reduction
