|
◆ vol7d_filter()
subroutine vol7d_class::vol7d_filter |
( |
type(vol7d), intent(inout) |
this, |
|
|
character(len=*), dimension(:), intent(in), optional |
avl, |
|
|
character(len=*), dimension(:), intent(in), optional |
vl, |
|
|
type(vol7d_network), dimension(:), optional |
nl, |
|
|
type(datetime), intent(in), optional |
s_d, |
|
|
type(datetime), intent(in), optional |
e_d |
|
) |
| |
Filter the contents of a volume keeping only desired data.
This subroutine filters a vol7d object by keeping only a subset of the data contained. It can keep only times within a specified interval, only station networks contained in a list and only specified station or data variables. If a filter parameter is not provided, no filtering will take place according to that criterion. The volume is reallocated keeping only the desired data.
- Parametri
-
[in,out] | this | volume to be filtered |
[in] | avl | list of station variables to be kept, if not provided or of zero length, all variables are kept |
[in] | vl | list of data variables to be kept, if not provided or of zero length, all variables are kept |
| nl | list of station networks to be kept, if not provided or of zero length, all networks are kept |
[in] | s_d | initial time interval for time filtering, if not provided or equal to missing data no lower limit is imposed |
[in] | e_d | final time interval for time filtering, if not provided or equal to missing data no upper limit is imposed |
Definizione alla linea 2158 del file vol7d_class.F90.
2162 CALL vol7d_copy(this, v7d_tmp, & 2163 lanavarr=fv, lanavard=fv, lanavari=acn, lanavarb=fv, lanavarc=fv, & 2164 lanaattrr=fv, lanaattrd=fv, lanaattri=fv, lanaattrb=fv, lanaattrc=fv, & 2165 lanavarattrr=fv, lanavarattrd=fv, lanavarattri=fv, lanavarattrb=fv, lanavarattrc=fv, & 2166 ldativarr=fv, ldativard=fv, ldativari=tv, ldativarb=fv, ldativarc=fv, & 2167 ldatiattrr=fv, ldatiattrd=fv, ldatiattri=fv, ldatiattrb=fv, ldatiattrc=fv, & 2168 ldativarattrr=fv, ldativarattrd=fv, ldativarattri=fv, ldativarattrb=fv, ldativarattrc=fv) 2171 IF ( ASSOCIATED(v7d_tmp%anavar%i) .OR. ASSOCIATED(v7d_tmp%dativar%i)) THEN 2173 IF ( ASSOCIATED(v7d_tmp%anavar%i)) THEN 2175 ALLOCATE(v7d_tmp%volanar( SIZE(v7d_tmp%volanai, 1), SIZE(v7d_tmp%volanai, 2), & 2176 SIZE(v7d_tmp%volanai, 3))) 2177 DO i = 1, SIZE(v7d_tmp%anavar%i) 2178 v7d_tmp%volanar(:,i,:) = & 2179 realdat(v7d_tmp%volanai(:,i,:), v7d_tmp%anavar%i(i)) 2181 DEALLOCATE(v7d_tmp%volanai) 2183 v7d_tmp%anavar%r => v7d_tmp%anavar%i 2184 NULLIFY(v7d_tmp%anavar%i) 2187 IF ( ASSOCIATED(v7d_tmp%dativar%i)) THEN 2189 ALLOCATE(v7d_tmp%voldatir( SIZE(v7d_tmp%voldatii, 1), SIZE(v7d_tmp%voldatii, 2), & 2190 SIZE(v7d_tmp%voldatii, 3), SIZE(v7d_tmp%voldatii, 4), SIZE(v7d_tmp%voldatii, 5), & 2191 SIZE(v7d_tmp%voldatii, 6))) 2192 DO i = 1, SIZE(v7d_tmp%dativar%i) 2193 v7d_tmp%voldatir(:,:,:,:,i,:) = & 2194 realdat(v7d_tmp%voldatii(:,:,:,:,i,:), v7d_tmp%dativar%i(i)) 2196 DEALLOCATE(v7d_tmp%voldatii) 2198 v7d_tmp%dativar%r => v7d_tmp%dativar%i 2199 NULLIFY(v7d_tmp%dativar%i) 2203 CALL vol7d_merge(that, v7d_tmp) 2205 CALL delete(v7d_tmp) 2210 CALL vol7d_copy(this, v7d_tmp, & 2211 lanavarr=fv, lanavard=fv, lanavari=fv, lanavarb=acn, lanavarc=fv, & 2212 lanaattrr=fv, lanaattrd=fv, lanaattri=fv, lanaattrb=fv, lanaattrc=fv, & 2213 lanavarattrr=fv, lanavarattrd=fv, lanavarattri=fv, lanavarattrb=fv, lanavarattrc=fv, & 2214 ldativarr=fv, ldativard=fv, ldativari=fv, ldativarb=tv, ldativarc=fv, & 2215 ldatiattrr=fv, ldatiattrd=fv, ldatiattri=fv, ldatiattrb=fv, ldatiattrc=fv, & 2216 ldativarattrr=fv, ldativarattrd=fv, ldativarattri=fv, ldativarattrb=fv, ldativarattrc=fv) 2219 IF ( ASSOCIATED(v7d_tmp%anavar%b) .OR. ASSOCIATED(v7d_tmp%dativar%b)) THEN 2221 IF ( ASSOCIATED(v7d_tmp%anavar%b)) THEN 2223 ALLOCATE(v7d_tmp%volanar( SIZE(v7d_tmp%volanab, 1), SIZE(v7d_tmp%volanab, 2), & 2224 SIZE(v7d_tmp%volanab, 3))) 2225 DO i = 1, SIZE(v7d_tmp%anavar%b) 2226 v7d_tmp%volanar(:,i,:) = & 2227 realdat(v7d_tmp%volanab(:,i,:), v7d_tmp%anavar%b(i)) 2229 DEALLOCATE(v7d_tmp%volanab) 2231 v7d_tmp%anavar%r => v7d_tmp%anavar%b 2232 NULLIFY(v7d_tmp%anavar%b) 2235 IF ( ASSOCIATED(v7d_tmp%dativar%b)) THEN 2237 ALLOCATE(v7d_tmp%voldatir( SIZE(v7d_tmp%voldatib, 1), SIZE(v7d_tmp%voldatib, 2), & 2238 SIZE(v7d_tmp%voldatib, 3), SIZE(v7d_tmp%voldatib, 4), SIZE(v7d_tmp%voldatib, 5), & 2239 SIZE(v7d_tmp%voldatib, 6))) 2240 DO i = 1, SIZE(v7d_tmp%dativar%b) 2241 v7d_tmp%voldatir(:,:,:,:,i,:) = & 2242 realdat(v7d_tmp%voldatib(:,:,:,:,i,:), v7d_tmp%dativar%b(i)) 2244 DEALLOCATE(v7d_tmp%voldatib) 2246 v7d_tmp%dativar%r => v7d_tmp%dativar%b 2247 NULLIFY(v7d_tmp%dativar%b) 2251 CALL vol7d_merge(that, v7d_tmp) 2253 CALL delete(v7d_tmp) 2258 CALL vol7d_copy(this, v7d_tmp, & 2259 lanavarr=fv, lanavard=fv, lanavari=fv, lanavarb=fv, lanavarc=acn, & 2260 lanaattrr=fv, lanaattrd=fv, lanaattri=fv, lanaattrb=fv, lanaattrc=fv, & 2261 lanavarattrr=fv, lanavarattrd=fv, lanavarattri=fv, lanavarattrb=fv, lanavarattrc=fv, & 2262 ldativarr=fv, ldativard=fv, ldativari=fv, ldativarb=fv, ldativarc=tv, & 2263 ldatiattrr=fv, ldatiattrd=fv, ldatiattri=fv, ldatiattrb=fv, ldatiattrc=fv, & 2264 ldativarattrr=fv, ldativarattrd=fv, ldativarattri=fv, ldativarattrb=fv, ldativarattrc=fv) 2267 IF ( ASSOCIATED(v7d_tmp%anavar%c) .OR. ASSOCIATED(v7d_tmp%dativar%c)) THEN 2269 IF ( ASSOCIATED(v7d_tmp%anavar%c)) THEN
|