libsim  Versione 7.1.6

◆ vol7d_decompute_stat_proc()

subroutine vol7d_class_compute::vol7d_decompute_stat_proc ( type(vol7d), intent(inout)  this,
type(vol7d), intent(out)  that,
type(timedelta), intent(in)  step,
type(vol7d), intent(inout), optional  other,
integer, intent(in), optional  stat_proc_input 
)

Method to transform the timerange of a set of data from statistically processed to instantaneous.

The data does not change, only time and timerange descriptors change.

The output that vol7d object contains elements from the original volume this satisfying the conditions

Output data will have timerange 254, p1 = 0 and p2 = 0; the time dimension is shifted by half step so that it coincides with the mid point of the input statistical processing interval.

Parametri
[in,out]thisvolume providing data to be recomputed, it is not modified by the method, apart from performing a vol7d_alloc_vol on it
[out]thatoutput volume which will contain the recomputed data
[in]steplength of the step over which the statistical processing is performed
[in,out]otheroptional volume that, on exit, is going to contain the data that did not contribute to the statistical processing
[in]stat_proc_inputtype of statistical processing of data that has to be processed (from grib2 table), if not provided, averaged data (statistical processing = 0) is processed

Definizione alla linea 947 del file vol7d_class_compute.F90.

948  ENDDO
949 ENDIF
950 
951 ! this should be avoided by sorting descriptors upstream
952 ! descriptors now are sorted upstream with a dirty and expensive trick
953 ! but the order may be scrambled in the call to vol7d_merge above
954 CALL vol7d_smart_sort(that, lsort_time=.true., lsort_timerange=.true.)
955 
956 CALL makeother(.true.)
957 
958 CONTAINS
959 
960 SUBROUTINE makeother(filter)
961 LOGICAL,INTENT(in) :: filter
962 IF (PRESENT(other)) THEN
963  IF (filter) THEN ! create volume with the remaining data for further processing
964  CALL vol7d_copy(this, other, miss=.false., sort=.false., unique=.false., &
965  ltimerange=(this%timerange(:)%timerange /= stat_proc))
966  ELSE
967  CALL vol7d_copy(this, other, miss=.false., sort=.false., unique=.false.)
968  ENDIF
969 ENDIF
970 END SUBROUTINE makeother
971 
972 END SUBROUTINE vol7d_recompute_stat_proc_diff
973 
974 

Generated with Doxygen.