libsim Versione 7.2.1

◆ vol7d_dballe_import_old()

subroutine vol7d_dballe_import_old ( type(vol7d_dballe), intent(inout)  this,
character(len=*), dimension(:), intent(in), optional  var,
type(vol7d_network), intent(in), optional  network,
type(geo_coord), intent(inout), optional  coordmin,
type(geo_coord), intent(inout), optional  coordmax,
type(datetime), intent(in), optional  timei,
type(datetime), intent(in), optional  timef,
type(vol7d_level), intent(in), optional  level,
type(vol7d_timerange), intent(in), optional  timerange,
type(vol7d_network), intent(in), optional  set_network,
character(len=*), dimension(:), intent(in), optional  attr,
character(len=*), dimension(:), intent(in), optional  anavar,
character(len=*), dimension(:), intent(in), optional  anaattr,
character(len=*), dimension(:), intent(in), optional  varkind,
character(len=*), dimension(:), intent(in), optional  attrkind,
character(len=*), dimension(:), intent(in), optional  anavarkind,
character(len=*), dimension(:), intent(in), optional  anaattrkind,
logical, intent(in), optional  anaonly,
logical, intent(in), optional  dataonly,
type(vol7d_ana), intent(inout), optional  ana 
)

import da DB-all.e

Parametri
[in,out]thisoggetto vol7d_dballe

Definizione alla linea 486 del file vol7d_dballe_class.F03.

488 case("i")
489 allocate (anastarvars%dcv(i)%dat,source=dbadatai(anaattr(i)))
490 case("b")
491 allocate (anastarvars%dcv(i)%dat,source=dbadatab(anaattr(i)))
492 case("d")
493 allocate (anastarvars%dcv(i)%dat,source=dbadatad(anaattr(i)))
494 case("c")
495 allocate (anastarvars%dcv(i)%dat,source=dbadatac(anaattr(i)))
496 case default
497 call l4f_category_log(this%category,l4f_error,"attr and attrkind mismach")
498 CALL raise_fatal_error()
499 end select
500 else
501 allocate (anastarvars%dcv(i)%dat,source=dbadatac(anaattr(i))) !char is default
502 end if
503 end if
504 end do
505 end if
506 end if
507end if
508
509
510 ! like a cast
511mydbacoordmin=dbacoord()
512if (present(coordmin)) mydbacoordmin%geo_coord=coordmin
513mydbacoordmax=dbacoord()
514if (present(coordmax)) mydbacoordmax%geo_coord=coordmax
515mydbaana=dbaana()
516if (present(ana)) mydbaana%vol7d_ana=ana
517mydatetimemin=dbadatetime()
518if (present(timei)) mydatetimemin%datetime=timei
519mydatetimemax=dbadatetime()
520if (present(timef)) mydatetimemax%datetime=timef
521mydbatimerange=dbatimerange()
522if (present(timerange)) mydbatimerange%vol7d_timerange=timerange
523mydbalevel=dbalevel()
524if (present(level)) mydbalevel%vol7d_level=level
525mydbanetwork=dbanetwork()
526if (present(network)) mydbanetwork%vol7d_network=network
527
528!!
529!! here we have options ready for filter
530!!
531filter=dbafilter(coordmin=mydbacoordmin,coordmax=mydbacoordmax,ana=mydbaana, &
532 datetimemin=mydatetimemin,datetimemax=mydatetimemax, &
533 timerange=mydbatimerange,level=mydbalevel,network=mydbanetwork,query=query,&
534 vars=vars,starvars=starvars,anavars=anavars,anastarvars=anastarvars,&
535 dataonly=dataonly,anaonly=anaonly)
536!!$ print *, "filter:"
537!!$ call filter%display()
538
539call import(this,filter,set_network)
540
541
542END SUBROUTINE vol7d_dballe_import_old
543
544
545
547subroutine vol7d_dballe_import(this,filter,set_network)
548
549TYPE(vol7d_dballe),INTENT(inout) :: this
550type(dbafilter),INTENT(in) :: filter
551TYPE(vol7d_network),INTENT(in),OPTIONAL :: set_network
552
553TYPE(vol7d) :: vol7dtmp
554type(dbametaanddata),allocatable :: metaanddatav(:)
555type(dbafilter) :: myfilter
556
557CALL l4f_category_log(this%category,l4f_debug,'start import vol7d_dballe')
558
559if ( .not. filter%dataonly) then
560 ! ----------------> constant station data
561 myfilter=dbafilter(filter=filter,contextana=.true.,query=cmiss)
562! ! set filter
563! call this%handle%set(filter=myfilter)
564 ! estrude the data
565 CALL l4f_category_log(this%category,l4f_debug,'start import vol7d_dballe ingest for constant station data')
566! call this%handle%ingest(filter=myfilter)
567 call this%handle%ingest(metaanddatav,filter=myfilter)
568 CALL l4f_category_log(this%category,l4f_debug,'end import vol7d_dballe ingest')
569 CALL l4f_category_log(this%category,l4f_debug,'start import vol7d_dballe dba2v7d')
570 call dba2v7d(this%vol7d, metaanddatav,this%time_definition,set_network)
571 CALL l4f_category_log(this%category,l4f_debug,'end import vol7d_dballe dba2v7d')
572
573 deallocate (metaanddatav)
574
575else
576 ! empty volume
577 call init(this%vol7d)
578 call vol7d_alloc(this%vol7d)
579 call vol7d_alloc_vol(this%vol7d)
580end if
581 ! ----------------> constant station data end
582
583if ( .not. filter%anaonly) then
584 ! ----------------> working on data
585 myfilter=dbafilter(filter=filter,contextana=.false.)
586! ! set filter
587! call this%handle%set(filter=myfilter)
588 ! estrude the data
589
590 CALL l4f_category_log(this%category,l4f_debug,'start import vol7d_dballe ingest for station data')
591! call this%handle%ingest(filter=myfilter)
592 call this%handle%ingest(metaanddatav,filter=myfilter)
593 CALL l4f_category_log(this%category,l4f_debug,'end import vol7d_dballe ingest')
594 CALL l4f_category_log(this%category,l4f_debug,'start import vol7d_dballe dba2v7d')
595 call dba2v7d(vol7dtmp,metaanddatav,this%time_definition,set_network)
596 CALL l4f_category_log(this%category,l4f_debug,'end import vol7d_dballe dba2v7d')
597
598 deallocate (metaanddatav)
599
600 CALL vol7d_merge(this%vol7d, vol7dtmp, sort=.true.) ! Smart merge
601!!$else
602!!$ ! should we sort separately in case no merge is done?
603!!$ CALL vol7d_smart_sort(this%vol7d, lsort_time=.TRUE., lsort_timerange=.TRUE., lsort_level=.TRUE.)
604end if
605
606call vol7d_dballe_set_var_du(this%vol7d)
607
608
609#ifdef NONE
610
611!!$if (lattr) then
612!!$
613!!$ allocate (this%data_id( nana, ntime, nlevel, ntimerange, nnetwork),stat=istat)
614!!$ if (istat/= 0) THEN
615!!$ CALL l4f_category_log(this%category,L4F_ERROR,'cannot allocate ' &
616!!$ //TRIM(to_char(nana*ntime*nlevel*ntimerange*nnetwork))//' data_id elements')
617!!$ CALL raise_fatal_error()
618!!$
619!!$ ENDIF
620!!$
621!!$ this%data_id=DBA_MVI
622!!$
623!!$else
624
625nullify(this%data_id)
626
627!!$end if
628
629
630 !memorizzo data_id
631#ifdef DEBUG
632 !CALL l4f_category_log(this%category,L4F_DEBUG,"data_id: "//trim(to_char(buffer(i)%data_id)))
633#endif
634
635this%data_id(indana,indtime,indlevel,indtimerange,indnetwork)=buffer(i)%data_id
636
637
638ier=idba_set(this%handle,"*context_id",buffer(i)%data_id)
639ier=idba_set(this%handle,"*var_related",buffer(i)%btable)
640 !per ogni dato ora lavoro sugli attributi
641ier=idba_set(this%handle, "*varlist",starvarlist )
642ier=idba_voglioancora(this%handle,nn)
643 !print*,buffer(i)%btable," numero attributi",nn
644
645#endif
646
647CALL l4f_category_log(this%category,l4f_debug,'end import vol7d_dballe')
648
649end subroutine vol7d_dballe_import
650
651
652
654
655SUBROUTINE vol7d_dballe_delete(this, preserveidbhandle)
656TYPE(vol7d_dballe) :: this
657logical,intent(in), optional :: preserveidbhandle
658
659# ifndef F2003_FULL_FEATURES
660call this%handle%delete()
661
662if (.not. optio_log(preserveidbhandle)) call this%idbhandle%delete()
663# endif
664
665!!$if (associated(this%data_id)) then
666!!$ deallocate (this%data_id)
667!!$ nullify(this%data_id)
668!!$end if
669
670CALL delete(this%vol7d)
671
672 !chiudo il logger
673call l4f_category_delete(this%category)
674 !ier=l4f_fini()
675
676END SUBROUTINE vol7d_dballe_delete
677
678
679
681!subroutine dba2v7d(this,metaanddatav,vars,starvars,anavars,anastarvars,time_definition, set_network)
682subroutine dba2v7d(this,metaanddatav,time_definition, set_network)
683
684type(dbametaanddata),intent(inout) :: metaanddatav(:) ! change value in datetime reguard timedefinition
685TYPE(vol7d),INTENT(inout) :: this
686integer,INTENT(in),OPTIONAL :: time_definition
687TYPE(vol7d_network),INTENT(in),OPTIONAL :: set_network
688type(dbadcv) :: vars
689type(dbadcv) :: starvars
690type(dbadcv) :: anavars
691type(dbadcv) :: anastarvars
692
693
694LOGICAL :: ldegnet
695integer :: indana,indtime,indlevel,indtimerange,inddativar,indnetwork,indattrvar
696
697integer :: nana,ntime,ntimerange,nlevel,nnetwork
698
699INTEGER :: i, j, k, n
700integer :: inddativarattr
701integer :: nanavar, indanavar,indanavarattr,nanavarattr
702
703integer :: ndativarr, ndativari, ndativarb, ndativard, ndativarc
704integer :: ndatiattrr, ndatiattri, ndatiattrb, ndatiattrd, ndatiattrc
705integer :: ndativarattrr, ndativarattri, ndativarattrb, ndativarattrd, ndativarattrc
706
707integer :: nanavarr, nanavari, nanavarb, nanavard, nanavarc
708integer :: nanaattrr, nanaattri, nanaattrb, nanaattrd, nanaattrc
709integer :: nanavarattrr, nanavarattri, nanavarattrb, nanavarattrd, nanavarattrc
710
711integer :: ndativar,ndativarattr
712
713type(characterlist) :: dativarl,dativarattrl,anavarl,anavarattrl
714
715character(len=listcharmaxlen),allocatable :: dativara(:),dativarattra(:),anavara(:),anavarattra(:)
716logical :: status
717integer :: ltime_definition
718
719type(datetime),allocatable :: tmptime(:)
720type(vol7d_network),allocatable :: tmpnetwork(:)
721type(vol7d_level),allocatable :: tmplevel(:)
722type(vol7d_timerange),allocatable :: tmptimerange(:)
723type(vol7d_ana),allocatable :: tmpana(:)
724
725
726ltime_definition=optio_i(time_definition)
727if (.not. c_e(ltime_definition)) ltime_definition = 1
728
729 ! take in account time_definition

Generated with Doxygen.