|
◆ qcteminit()
subroutine qcteminit |
( |
type(qctemtype), intent(inout) |
qctem, |
|
|
type (vol7d), intent(in), target |
v7d, |
|
|
character(len=*), dimension(:), intent(in) |
var, |
|
|
type(datetime), intent(in), optional |
timei, |
|
|
type(datetime), intent(in), optional |
timef, |
|
|
type(geo_coord), intent(inout), optional |
coordmin, |
|
|
type(geo_coord), intent(inout), optional |
coordmax, |
|
|
integer, dimension(:,:,:,:,:), intent(in), optional, target |
data_id_in, |
|
|
character(len=*), intent(in), optional |
extremepath, |
|
|
character(len=*), intent(in), optional |
temporalpath, |
|
|
character(len=*), intent(in), optional |
dsne, |
|
|
character(len=*), intent(in), optional |
usere, |
|
|
character(len=*), intent(in), optional |
passworde, |
|
|
character(len=*), intent(in), optional |
dsntem, |
|
|
character(len=*), intent(in), optional |
usertem, |
|
|
character(len=*), intent(in), optional |
passwordtem, |
|
|
logical, intent(in), optional |
height2level, |
|
|
character(len=*), optional |
operation, |
|
|
integer, intent(in), optional |
timeconfidence, |
|
|
character(len=*), intent(in), optional |
categoryappend |
|
) |
| |
Init del controllo di qualità temporale.
Effettua la lettura dei file e altre operazioni di inizializzazione.
- Parametri
-
[in,out] | qctem | Oggetto per il controllo temporale |
[in] | v7d | Il volume Vol7d da controllare |
[in] | var | variabili da importare secondo la tabella B locale o relativi alias |
[in,out] | coordmin | coordinate minime e massime che definiscono il rettangolo di estrazione per l'importazione |
[in,out] | coordmax | coordinate minime e massime che definiscono il rettangolo di estrazione per l'importazione |
[in] | timei | estremi temporali (inizio e fine) dell'estrazione per l'importazione |
[in] | timef | estremi temporali (inizio e fine) dell'estrazione per l'importazione |
[in] | data_id_in | Indici dei dati in DB |
[in] | extremepath | file con il volume del extreme |
[in] | temporalpath | file with spatial ndi |
[in] | height2level | use conventional level starting from station height |
| operation | Operation to execute ("gradient"/"run") |
[in] | timeconfidence | max time for data correlation in sec |
[in] | categoryappend | aggiunge questo suffisso al namespace category di log4fortran |
Definizione alla linea 338 del file modqctem.F90.
339 subroutine qctemdelete(qctem) 341 type(qctemtype), intent(in out) :: qctem 343 call qctemdealloc(qctem) 345 call delete(qctem%qccli) 348 call l4f_category_delete(qctem%category) 351 end subroutine qctemdelete 357 SUBROUTINE quacontem (qctem,battrinv,battrcli,battrout,& 358 anamask,timemask,levelmask,timerangemask,varmask,networkmask) 361 type(qctemtype), intent(in out) :: qctem 362 character (len=10) , intent(in), optional :: battrinv 363 character (len=10) , intent(in), optional :: battrcli 364 character (len=10) , intent(in), optional :: battrout 365 logical , intent(in), optional :: anamask(:) 366 logical , intent(in), optional :: timemask(:) 367 logical , intent(in), optional :: levelmask(:) 368 logical , intent(in), optional :: timerangemask(:) 369 logical , intent(in), optional :: varmask(:) 370 logical , intent(in), optional :: networkmask(:) 375 integer :: indbattrinv,indbattrcli,indbattrout,grunit 376 logical :: anamaskl(size(qctem%v7d%ana)), timemaskl(size(qctem%v7d%time)), levelmaskl(size(qctem%v7d%level)), & 377 timerangemaskl(size(qctem%v7d%timerange)), varmaskl(size(qctem%v7d%dativar%r)), networkmaskl(size(qctem%v7d%network)) 379 integer :: indana , indtime ,indlevel ,indtimerange ,inddativarr, indnetwork,indtimenear 380 integer :: indcana , indctime ,indclevel ,indctimerange ,indcdativarr, indcnetwork, indcnetworks, indcnetworkg 381 real :: datoqui,datoprima,datodopo,climaquii, climaquif 385 TYPE(datetime) :: time,prima, ora, dopo 386 TYPE(vol7d_network):: network 387 type(timedelta) :: td 389 double precision :: gradprima,graddopo,grad 391 character(len=512) :: filename 396 if ( present(battrinv)) then 397 indbattrinv = index_c(qctem%v7d%datiattr%b(:)%btable, battrinv) 399 indbattrinv = index_c(qctem%v7d%datiattr%b(:)%btable, qcattrvarsbtables(1)) 402 if ( present(battrcli)) then 403 indbattrcli = index_c(qctem%v7d%datiattr%b(:)%btable, battrcli) 405 indbattrcli = index_c(qctem%v7d%datiattr%b(:)%btable, qcattrvarsbtables(2)) 408 if ( present(battrout)) then 409 indbattrout = index_c(qctem%v7d%datiattr%b(:)%btable, battrout) 411 indbattrout = index_c(qctem%v7d%datiattr%b(:)%btable, qcattrvarsbtables(3)) 417 if (indbattrout <= 0 ) then 419 call l4f_category_log(qctem%category,l4f_error, "error finding attribute index for output") 424 if (qctem%operation == "gradient") then 427 if ( size(qctem%v7d%level) > 1 .or.& 428 size(qctem%v7d%timerange) > 1 .or.& 429 size(qctem%v7d%dativar%r) > 1 ) then 430 call l4f_category_log(qctem%category,l4f_error, "gradient operation manage one level/timerange/var only") 435 if ( size(qctem%v7d%time) < 1 ) then 436 call l4f_category_log(qctem%category,l4f_info, "no data present for gradient operation") 442 if( present(anamask)) then 447 if( present(timemask)) then 452 if( present(levelmask)) then 453 levelmaskl = levelmask 457 if( present(timerangemask)) then 458 timerangemaskl = timerangemask 460 timerangemaskl = .true. 462 if( present(varmask)) then 467 if( present(networkmask)) then 468 networkmaskl = networkmask 470 networkmaskl = .true. 474 qctem%v7d%voldatiattrb(:,:,:,:,:,:,indbattrout)=ibmiss 477 call vol7d_normalize_data(qctem%qccli) 483 time=cyclicdatetime_to_conventional(cyclicdatetime_new(chardate= "/////////")) 487 if (qctem%operation == "run") then
|