3371     real(DP), 
intent(in), 
target:: array(:,:,:,:,:,:,:)
  3372     logical, 
intent(in):: space_average(7)
  3373                         real(DP), 
intent(in):: weight1(:)
  3375     real(DP), 
intent(in):: weight2(:)
  3377     real(DP), 
intent(in):: weight3(:)
  3379     real(DP), 
intent(in):: weight4(:)
  3381     real(DP), 
intent(in):: weight5(:)
  3383     real(DP), 
intent(in):: weight6(:)
  3385     real(DP), 
intent(in):: weight7(:)
  3387     real(DP), 
pointer:: array_avr(:,:,:,:,:,:,:) 
  3389     real(DP), 
pointer:: array_avr_work(:,:,:,:,:,:,:)
  3391                         real(DP), 
pointer:: array_avr_work1(:,:,:,:,:,:,:)
  3393     real(DP), 
pointer:: array_avr_work2(:,:,:,:,:,:,:)
  3395     real(DP), 
pointer:: array_avr_work3(:,:,:,:,:,:,:)
  3397     real(DP), 
pointer:: array_avr_work4(:,:,:,:,:,:,:)
  3399     real(DP), 
pointer:: array_avr_work5(:,:,:,:,:,:,:)
  3401     real(DP), 
pointer:: array_avr_work6(:,:,:,:,:,:,:)
  3403     real(DP), 
pointer:: array_avr_work7(:,:,:,:,:,:,:)
  3406     integer:: array_shape(7)
  3407     integer:: 
i, dim_size
  3408     real(DP):: weight_sum
  3411     array_shape = shape( array )
  3412     array_avr_work => array
  3417     if ( space_average(1) ) 
then  3418       dim_size = array_shape(1)
  3420       allocate( array_avr_work1( array_shape(1) &
  3421                                   & , array_shape(2) &
  3423         & , array_shape(3) &
  3425         & , array_shape(4) &
  3427         & , array_shape(5) &
  3429         & , array_shape(6) &
  3431         & , array_shape(7) &
  3434       array_avr_work1 = 0.0_dp
  3437         array_avr_work1(1,:,:,:,:,:,:) = array_avr_work1(1,:,:,:,:,:,:) + array_avr_work(
i,:,:,:,:,:,:) * weight1(
i)
  3438         weight_sum = weight_sum + weight1(
i)
  3440       array_avr_work1 = array_avr_work1 / weight_sum
  3441       array_avr_work  => array_avr_work1
  3446     if ( space_average(2) ) 
then  3447       dim_size = array_shape(2)
  3449       allocate( array_avr_work2( array_shape(1) &
  3450                                   & , array_shape(2) &
  3452         & , array_shape(3) &
  3454         & , array_shape(4) &
  3456         & , array_shape(5) &
  3458         & , array_shape(6) &
  3460         & , array_shape(7) &
  3463       array_avr_work2 = 0.0_dp
  3466         array_avr_work2(:,1,:,:,:,:,:) = array_avr_work2(:,1,:,:,:,:,:) + array_avr_work(:,
i,:,:,:,:,:) * weight2(
i)
  3467         weight_sum = weight_sum + weight2(
i)
  3469       array_avr_work2 = array_avr_work2 / weight_sum
  3470       array_avr_work  => array_avr_work2
  3475     if ( space_average(3) ) 
then  3476       dim_size = array_shape(3)
  3478       allocate( array_avr_work3( array_shape(1) &
  3479                                   & , array_shape(2) &
  3481         & , array_shape(3) &
  3483         & , array_shape(4) &
  3485         & , array_shape(5) &
  3487         & , array_shape(6) &
  3489         & , array_shape(7) &
  3492       array_avr_work3 = 0.0_dp
  3495         array_avr_work3(:,:,1,:,:,:,:) = array_avr_work3(:,:,1,:,:,:,:) + array_avr_work(:,:,
i,:,:,:,:) * weight3(
i)
  3496         weight_sum = weight_sum + weight3(
i)
  3498       array_avr_work3 = array_avr_work3 / weight_sum
  3499       array_avr_work  => array_avr_work3
  3504     if ( space_average(4) ) 
then  3505       dim_size = array_shape(4)
  3507       allocate( array_avr_work4( array_shape(1) &
  3508                                   & , array_shape(2) &
  3510         & , array_shape(3) &
  3512         & , array_shape(4) &
  3514         & , array_shape(5) &
  3516         & , array_shape(6) &
  3518         & , array_shape(7) &
  3521       array_avr_work4 = 0.0_dp
  3524         array_avr_work4(:,:,:,1,:,:,:) = array_avr_work4(:,:,:,1,:,:,:) + array_avr_work(:,:,:,
i,:,:,:) * weight4(
i)
  3525         weight_sum = weight_sum + weight4(
i)
  3527       array_avr_work4 = array_avr_work4 / weight_sum
  3528       array_avr_work  => array_avr_work4
  3533     if ( space_average(5) ) 
then  3534       dim_size = array_shape(5)
  3536       allocate( array_avr_work5( array_shape(1) &
  3537                                   & , array_shape(2) &
  3539         & , array_shape(3) &
  3541         & , array_shape(4) &
  3543         & , array_shape(5) &
  3545         & , array_shape(6) &
  3547         & , array_shape(7) &
  3550       array_avr_work5 = 0.0_dp
  3553         array_avr_work5(:,:,:,:,1,:,:) = array_avr_work5(:,:,:,:,1,:,:) + array_avr_work(:,:,:,:,
i,:,:) * weight5(
i)
  3554         weight_sum = weight_sum + weight5(
i)
  3556       array_avr_work5 = array_avr_work5 / weight_sum
  3557       array_avr_work  => array_avr_work5
  3562     if ( space_average(6) ) 
then  3563       dim_size = array_shape(6)
  3565       allocate( array_avr_work6( array_shape(1) &
  3566                                   & , array_shape(2) &
  3568         & , array_shape(3) &
  3570         & , array_shape(4) &
  3572         & , array_shape(5) &
  3574         & , array_shape(6) &
  3576         & , array_shape(7) &
  3579       array_avr_work6 = 0.0_dp
  3582         array_avr_work6(:,:,:,:,:,1,:) = array_avr_work6(:,:,:,:,:,1,:) + array_avr_work(:,:,:,:,:,
i,:) * weight6(
i)
  3583         weight_sum = weight_sum + weight6(
i)
  3585       array_avr_work6 = array_avr_work6 / weight_sum
  3586       array_avr_work  => array_avr_work6
  3591     if ( space_average(7) ) 
then  3592       dim_size = array_shape(7)
  3594       allocate( array_avr_work7( array_shape(1) &
  3595                                   & , array_shape(2) &
  3597         & , array_shape(3) &
  3599         & , array_shape(4) &
  3601         & , array_shape(5) &
  3603         & , array_shape(6) &
  3605         & , array_shape(7) &
  3608       array_avr_work7 = 0.0_dp
  3611         array_avr_work7(:,:,:,:,:,:,1) = array_avr_work7(:,:,:,:,:,:,1) + array_avr_work(:,:,:,:,:,:,
i) * weight7(
i)
  3612         weight_sum = weight_sum + weight7(
i)
  3614       array_avr_work7 = array_avr_work7 / weight_sum
  3615       array_avr_work  => array_avr_work7
  3624       allocate( array_avr( array_shape(1) &
  3625                             & , array_shape(2) &
  3627         & , array_shape(3) &
  3629         & , array_shape(4) &
  3631         & , array_shape(5) &
  3633         & , array_shape(6) &
  3635         & , array_shape(7) &
  3639       array_avr = array_avr_work
  3641       nullify( array_avr_work )
  3643                           if ( 
associated( array_avr_work1 ) ) 
deallocate( array_avr_work1 )
  3645       if ( 
associated( array_avr_work2 ) ) 
deallocate( array_avr_work2 )
  3647       if ( 
associated( array_avr_work3 ) ) 
deallocate( array_avr_work3 )
  3649       if ( 
associated( array_avr_work4 ) ) 
deallocate( array_avr_work4 )
  3651       if ( 
associated( array_avr_work5 ) ) 
deallocate( array_avr_work5 )
  3653       if ( 
associated( array_avr_work6 ) ) 
deallocate( array_avr_work6 )
  3655       if ( 
associated( array_avr_work7 ) ) 
deallocate( array_avr_work7 )