|
◆ qc_compute_normalizeddensityindex()
subroutine, public modqccli::qc_compute_normalizeddensityindex |
( |
type(qcclitype), intent(inout) |
this, |
|
|
real, dimension(:), intent(in) |
perc_vals, |
|
|
type(cyclicdatetime), intent(in) |
cyclicdt, |
|
|
real, optional |
presentperc, |
|
|
integer, optional |
presentnumb, |
|
|
logical, intent(in), optional |
data_normalized |
|
) |
| |
- Parametri
-
[in,out] | this | volume providing data to be computed and output data. Input data are not modified by the method, apart from performing a vol7d_alloc_vol on it |
[in] | perc_vals | percentile values to use in compute, between 0. and 100. |
[in] | cyclicdt | cyclic date and time |
| presentperc | rate of data present for compute on expected values (default=not used) |
| presentnumb | number of data present for compute (default= not used) |
[in] | data_normalized | data input are normalized and the output will be not differentiated by area/height. |
Definizione alla linea 1898 del file modqccli.F90.
1899 do j=1, size(mask,1)
1900 if (areav(j) /= area(i)) mask(j,:,:) =.false.
1903 if (this%height2level) then
1904 allocate (maskplus( size(this%v7d%ana), size(this%v7d%time), size
1907 CALL l4f_category_log(this%category, l4f_debug, 'k has value '
1910 do iana=1, size(mask,1)
1911 if (iclv(iana) /= k) maskplus(iana,:,:) =.false.
1912 if (iclv(iana) == k) maskplus(iana,:,:) = mask(iana,:,:
1915 call sub_ndi(mymask=maskplus)
1918 deallocate(maskplus)
1923 call sub_ndi(mymask=mask)
1931 mask = spread(spread((this%v7d%time == cyclicdt ),1, size(this%v7d%ana size
1935 call sub_ndi(mymask=mask)
1943 deallocate (ndi,limbins,mask)
1944 if (.NOT.(lnorm)) deallocate(area)
1948 subroutine sub_ndi(mymask)
1950 logical :: mymask(:,:,:)
1954 ( c_e(lpresentperc) .and. ((float(count &
1955 (mymask .and. c_e(this%v7d%voldatir(:,:, indlevel, indtimerange, inddativarr
1957 float(count(mymask))) < lpresentperc)) &
1961 ( c_e(lpresentnumb) .and. (count &
1962 (mymask .and. c_e(this%v7d%voldatir(:,:, indlevel, indtimerange, inddativarr
1970 pack(this%v7d%voldatir(:,:, indlevel, indtimerange, inddativarr,:), &
1972 perc_vals, ndi, limbins)
1974 do j=1, size(perc_vals)-1
1975 indana=(k-1)*( size(perc_vals)-1)*narea + (j-1)*narea + i
1976 this%clima%voldatir(indana, indtime, indlevel, indtimerange, inddativarr
1978 this%clima%voldatiattrr(indana, indtime, indlevel, indtimerange, inddativarr
1982 end subroutine sub_ndi
1985 end SUBROUTINE qc_compute_normalizeddensityindex
Controllo di qualità climatico.
|