libsim  Versione 7.2.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 952 del file vol7d_class_compute.F90.

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

Generated with Doxygen.