libsim Versione 7.2.6

◆ vol7d_decompute_stat_proc()

subroutine 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 942 del file vol7d_class_compute.F90.

943 ENDDO
944 ENDDO
945 ENDDO
946 ENDIF
947 ENDDO
948 ENDDO
949 ENDDO
950 ENDDO
951ENDIF
952
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
956CALL vol7d_smart_sort(that, lsort_time=.TRUE., lsort_timerange=.TRUE.)
957
958CALL makeother(.TRUE.)
959
960CONTAINS
961
962SUBROUTINE makeother(filter)
963LOGICAL,INTENT(in) :: filter
964IF (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
971ENDIF
972END SUBROUTINE makeother
973
974END SUBROUTINE vol7d_recompute_stat_proc_diff
975
976
977!> Specialized method for statistically processing a set of data
978!! by integration/differentiation.
979!! This method performs statistical processing by integrating
980!! (accumulating) in time values representing time-average rates or

Generated with Doxygen.