libsim Versione 8.0.0

◆ vol7d_display()

subroutine, private vol7d_display ( type(vol7d), intent(in) this)
private

stampa a video una sintesi del contenuto

Parametri
[in]thisoggetto da visualizzare

Definizione alla linea 684 del file vol7d_class.F90.

685cdat=cmiss
686ENDIF
687
688print*,"<<<<<<<<<<<<<<<<<<< END vol7d object >>>>>>>>>>>>>>>>>>>>"
689
690END SUBROUTINE vol7d_display
691
692
693!> stampa a video una sintesi del contenuto
694SUBROUTINE dat_display(this,idat,rdat,ddat,bdat,cdat)
695TYPE(vol7d_var),intent(in) :: this !< oggetto da visualizzare
696!> real
697REAL :: rdat
698!> double precision
699DOUBLE PRECISION :: ddat
700!> integer
701INTEGER :: idat
702!> byte
703INTEGER(kind=int_b) :: bdat
704!> character
705CHARACTER(len=*) :: cdat
706
707print *, to_char_dat(this,idat,rdat,ddat,bdat,cdat)
708
709end SUBROUTINE dat_display
710
711!> stampa a video una sintesi del contenuto
712SUBROUTINE dat_vect_display(this,idat,rdat,ddat,bdat,cdat)
713
714TYPE(vol7d_var),intent(in) :: this(:) !< oggetto da visualizzare
715!> real
716REAL :: rdat(:)
717!> double precision
718DOUBLE PRECISION :: ddat(:)
719!> integer
720INTEGER :: idat(:)
721!> byte
722INTEGER(kind=int_b) :: bdat(:)
723!> character
724CHARACTER(len=*):: cdat(:)
725
726integer :: i
727
728do i =1,size(this)
729 call display(this(i),idat(i),rdat(i),ddat(i),bdat(i),cdat(i))
730end do
731
732end SUBROUTINE dat_vect_display
733
734
735FUNCTION to_char_dat(this,idat,rdat,ddat,bdat,cdat)
736#ifdef HAVE_DBALLE
737USE dballef
738#endif
739TYPE(vol7d_var),INTENT(in) :: this
740!> real
741REAL :: rdat
742!> double precision
743DOUBLE PRECISION :: ddat
744!> integer
745INTEGER :: idat
746!> byte
747INTEGER(kind=int_b) :: bdat
748!> character
749CHARACTER(len=*) :: cdat
750CHARACTER(len=80) :: to_char_dat
751
752CHARACTER(len=LEN(to_char_dat)) :: to_char_tmp
753
754
755#ifdef HAVE_DBALLE
756INTEGER :: handle, ier
757
758handle = 0
759to_char_dat="VALUE: "
760
761if (c_e(idat)) to_char_dat=trim(to_char_dat)//" ;int> "//trim(to_char(idat))
762if (c_e(rdat)) to_char_dat=trim(to_char_dat)//" ;real> "//trim(to_char(rdat))
763if (c_e(ddat)) to_char_dat=trim(to_char_dat)//" ;double> "//trim(to_char(ddat))
764if (c_e(bdat)) to_char_dat=trim(to_char_dat)//" ;byte> "//trim(to_char(bdat))
765
766if ( c_e (cdat))then
767 ier = idba_messaggi(handle,"/dev/null", "w", "BUFR")
768 ier = idba_spiegab(handle,this%btable,cdat,to_char_tmp)
769 ier = idba_fatto(handle)
770 to_char_dat=trim(to_char_dat)//" ;char> "//trim(to_char_tmp)
771endif
772
773#else
774
775to_char_dat="VALUE: "
776if (c_e(idat)) to_char_dat=trim(to_char_dat)//" ;int> "//trim(to_char(idat))
777if (c_e(rdat)) to_char_dat=trim(to_char_dat)//" ;real> "//trim(to_char(rdat))
778if (c_e(ddat)) to_char_dat=trim(to_char_dat)//" ;double> "//trim(to_char(ddat))
779if (c_e(bdat)) to_char_dat=trim(to_char_dat)//" ;byte> "//trim(to_char(bdat))
780if (c_e(cdat)) to_char_dat=trim(to_char_dat)//" ;char> "//trim(cdat)
781
782#endif
783
784END FUNCTION to_char_dat
785
786
787!> Tests whether anything has ever been assigned to a vol7d object
788!! (.TRUE.) or it is as clean as after an init (.FALSE.).
789FUNCTION vol7d_c_e(this) RESULT(c_e)
790TYPE(vol7d), INTENT(in) :: this
791
792LOGICAL :: c_e
793
794c_e = ASSOCIATED(this%ana) .OR. ASSOCIATED(this%time) .OR. &
795 ASSOCIATED(this%level) .OR. ASSOCIATED(this%timerange) .OR. &
796 ASSOCIATED(this%network) .OR. &
797 ASSOCIATED(this%anavar%r) .OR. ASSOCIATED(this%anavar%d) .OR. &
798 ASSOCIATED(this%anavar%i) .OR. ASSOCIATED(this%anavar%b) .OR. &
799 ASSOCIATED(this%anavar%c) .OR. &
800 ASSOCIATED(this%anaattr%r) .OR. ASSOCIATED(this%anaattr%d) .OR. &
801 ASSOCIATED(this%anaattr%i) .OR. ASSOCIATED(this%anaattr%b) .OR. &
802 ASSOCIATED(this%anaattr%c) .OR. &
803 ASSOCIATED(this%dativar%r) .OR. ASSOCIATED(this%dativar%d) .OR. &
804 ASSOCIATED(this%dativar%i) .OR. ASSOCIATED(this%dativar%b) .OR. &
805 ASSOCIATED(this%dativar%c) .OR. &
806 ASSOCIATED(this%datiattr%r) .OR. ASSOCIATED(this%datiattr%d) .OR. &
807 ASSOCIATED(this%datiattr%i) .OR. ASSOCIATED(this%datiattr%b) .OR. &
808 ASSOCIATED(this%datiattr%c)
809
810END FUNCTION vol7d_c_e
811
812
813!> Metodo per allocare i descrittori delle 7 dimensioni.
814!! Riceve un grande numero di parametri opzionali che
815!! indicano quali descrittori allocare e con quale estensione;
816!! i descrittori non specificati non vengono toccati.
817!! Può essere quindi chiamato più volte allocando via via
818!! descrittori relativi a dimensioni diverse.
819!! Se un descrittore richiesto è già allocato, viene deallocato
820!! (perdendone l'eventuale contenuto) e riallocato con l'estensione
821!! richiesta.
822!! Per i descrittori relativi a dimensioni che non siano variabili o attributi,
823!! è possibile specificare l'estensione di una dimensione a 0,
824!! in tal caso il descrittore viene comunque allocato con lunghezza nulla,
825!! che è diverso da non allocarlo. Per i descrittori di variabili e attributi
826!! passare un'estensione 0 equivale a non fornire il parametro.
827!! Avere uno o più descrittori dimensionati con estensione nulla fa sì
828!! che anche il volume dati successivamente allocato abbia estensione nulla;
829!! sebbene ciò appaia inutile, un volume del genere può in realtà servire,
830!! in associazione ai metodi ::vol7d_merge o ::vol7d_append per estendere
831!! un volume esistente aggiungendo elementi in alcune dimensioni (quelle
832!! a estensione non nulla, ovviamente) e mantenendo invariato tutto il resto.
833!! Per quanto riguarda i descrittori delle dimensioni relative alle
834!! variabili, la relativa estensione è specificata con la nomenclatura
835!! \a n&lt;x&gt;&lt;y&gt;&lt;z&gt; dove &lt;x&gt; può valere:
836!! - \a ana per variabili relative a voumi di anagrafica
837!! - \a dati per variabili relative a voumi di dati
838!!
839!! &lt;y&gt; può valere:
840!! - \a var per variabili
841!! - \a attr per attributi
842!! - \a varattr variabili aventi attributi nei volumi di attributi
843!!
844!! &lt;z&gt; può valere:
845!! - \a r per variabili o attributi a valori reali
846!! - \a d per variabili o attributi a valori a doppia precisione
847!! - \a i per variabili o attributi a valori interi
848!! - \a b per variabili o attributi a valori byte
849!! - \a c per variabili o attributi a valori carattere
850!!
851SUBROUTINE vol7d_alloc(this, nana, ntime, nlevel, ntimerange, nnetwork, &
852 nanavarr, nanavard, nanavari, nanavarb, nanavarc, &
853 nanaattrr, nanaattrd, nanaattri, nanaattrb, nanaattrc, &
854 nanavarattrr, nanavarattrd, nanavarattri, nanavarattrb, nanavarattrc, &
855 ndativarr, ndativard, ndativari, ndativarb, ndativarc, &
856 ndatiattrr, ndatiattrd, ndatiattri, ndatiattrb, ndatiattrc, &
857 ndativarattrr, ndativarattrd, ndativarattri, ndativarattrb, ndativarattrc, &
858 ini)
859TYPE(vol7d),INTENT(inout) :: this !< oggetto di cui allocare i descrittori
860INTEGER,INTENT(in),OPTIONAL :: nana !< estensione della dimensione anagrafica
861INTEGER,INTENT(in),OPTIONAL :: ntime !< estensione della dimensione tempo
862INTEGER,INTENT(in),OPTIONAL :: nlevel !< estensione della dimensione livello varticale
863INTEGER,INTENT(in),OPTIONAL :: ntimerange !< estensione della dimensione intervallo temporale (timerange)
864INTEGER,INTENT(in),OPTIONAL :: nnetwork !< estensione della dimensione rete
865!> estensione delle possibili dimensioni variabile
866INTEGER,INTENT(in),OPTIONAL :: &
867 nanavarr, nanavard, nanavari, nanavarb, nanavarc, &
868 nanaattrr, nanaattrd, nanaattri, nanaattrb, nanaattrc, &
869 nanavarattrr, nanavarattrd, nanavarattri, nanavarattrb, nanavarattrc, &
870 ndativarr, ndativard, ndativari, ndativarb, ndativarc, &
871 ndatiattrr, ndatiattrd, ndatiattri, ndatiattrb, ndatiattrc, &
872 ndativarattrr, ndativarattrd, ndativarattri, ndativarattrb, ndativarattrc
873LOGICAL,INTENT(in),OPTIONAL :: ini !< se fornito e vale \c .TRUE., viene chiamato il costruttore, senza parametri opzionali, per ogni elemento di tutti i descrittori allocati, inizializzandolo quindi a valore mancante
874
875INTEGER :: i
876LOGICAL :: linit
877

Generated with Doxygen.