|
◆ vol7d_dballe_set_var_du()
subroutine, public vol7d_dballe_class::vol7d_dballe_set_var_du |
( |
type(vol7d) |
this | ) |
|
Integra il vettore delle variabili in vol7d con le descrizioni e le unità di misura eventualmente mancanti.
- Parametri
-
this | oggetto vol7d con le variabili da completare |
Definizione alla linea 1731 del file vol7d_dballe_class.F03.
1734 path=get_dballe_filepath(filename, filetype)
1735 IF (path == '') RETURN
1738 IF (unit == -1) RETURN
1740 OPEN(unit, file=path, status= 'old', iostat = i)
1742 CALL l4f_log(l4f_info, 'dballe file '//trim(path)// ' opened')
1746 CALL l4f_log(l4f_error, 'dballe file '//trim(filename)// ' not found')
1750 END FUNCTION open_dballe_file
1764 SUBROUTINE vol7d_dballe_export_old(this, network, coordmin, coordmax,&
1765 timei, timef,level,timerange,var,attr,anavar,anaattr,ana,dataonly,anaonly,template,attr_only)
1767 TYPE(vol7d_dballe), INTENT(inout) :: this
1768 character(len=network_name_len), INTENT(in), optional :: network
1771 TYPE(geo_coord), INTENT(in), optional :: coordmin,coordmax
1773 TYPE(datetime), INTENT(in), optional :: timei, timef
1774 TYPE(vol7d_level), INTENT(in), optional :: level
1775 TYPE(vol7d_timerange), INTENT(in), optional :: timerange
1778 CHARACTER(len=*), INTENT(in), OPTIONAL :: var(:),attr(:),anavar(:),anaattr(:)
1783 TYPE(vol7d_ana), INTENT(inout), optional :: ana
1784 logical, intent(in), optional :: dataonly
1785 logical, intent(in), optional :: anaonly
1788 character(len=*), intent(in), optional :: template
1789 logical, intent(in), optional :: attr_only
1792 type(dbadcv) :: vars,starvars,anavars,anastarvars
1793 type(dbafilter) :: filter
1794 type(dbacoord) :: mydbacoordmin, mydbacoordmax
1795 type(dbaana) :: mydbaana
1796 type(dbadatetime) :: mydatetimemin, mydatetimemax
1797 type(dbatimerange) :: mydbatimerange
1798 type(dbalevel) :: mydbalevel
1799 type(dbanetwork) :: mydbanetwork
1802 LOGICAL :: lattr, lanaattr
1803 integer :: nanaattr,nattr,nanavar,nvar
1812 if ( present(var)) then
1813 nvar=count(c_e(var))
1815 allocate (vars%dcv(nvar))
1817 if (c_e(var(i))) then
1818 allocate (vars%dcv(i)%dat,source=dbadatac(var(i)))
1824 if ( present(anavar)) then
1825 nanavar=count(c_e(anavar))
1826 if (nanavar > 0) then
1827 allocate (anavars%dcv(nanavar))
1829 if (c_e(anavar(i))) then
1830 allocate (anavars%dcv(i)%dat,source=dbadatac(anavar(i)))
1837 if ( present(attr)) then
1838 nattr=count(c_e(attr))
1841 allocate (starvars%dcv(nattr))
1843 if (c_e(attr(i))) then
1844 allocate (starvars%dcv(i)%dat,source=dbadatac(attr(i)))
1851 if ( present(anaattr)) then
1852 nanaattr=count(c_e(anaattr))
1853 if (nanaattr > 0) then
1855 allocate (anastarvars%dcv(nanaattr))
1856 do i=1, size(anaattr)
1857 if (c_e(anaattr(i))) then
1858 allocate (anastarvars%dcv(i)%dat,source=dbadatac(anaattr(i)))
1866 mydbacoordmin=dbacoord()
1867 if ( present(coordmin)) mydbacoordmin%geo_coord=coordmin
1868 mydbacoordmax=dbacoord()
1869 if ( present(coordmax)) mydbacoordmax%geo_coord=coordmax
1871 if ( present(ana)) mydbaana%vol7d_ana=ana
1872 mydatetimemin=dbadatetime()
1873 if ( present(timei)) mydatetimemin%datetime=timei
1874 mydatetimemax=dbadatetime()
1875 if ( present(timef)) mydatetimemax%datetime=timef
1876 mydbatimerange=dbatimerange()
1877 if ( present(timerange)) mydbatimerange%vol7d_timerange=timerange
1878 mydbalevel=dbalevel()
1879 if ( present(level)) mydbalevel%vol7d_level=level
1880 mydbanetwork=dbanetwork()
1881 if ( present(network)) call init(mydbanetwork%vol7d_network,name=network)
1886 filter=dbafilter(coordmin=mydbacoordmin,coordmax=mydbacoordmax,ana=mydbaana, &
1887 datetimemin=mydatetimemin,datetimemax=mydatetimemax, &
1888 timerange=mydbatimerange,level=mydbalevel,network=mydbanetwork,&
1889 vars=vars,starvars=starvars,anavars=anavars,anastarvars=anastarvars,&
1890 dataonly=dataonly,anaonly=anaonly)
1895 call export (this, filter,template,attr_only)
1897 end SUBROUTINE vol7d_dballe_export_old
1900 subroutine vol7d_dballe_export (this, filter, template, attr_only)
1902 TYPE(vol7d_dballe), INTENT(inout) :: this
1903 type(dbafilter), intent(in) :: filter
1906 character(len=*), intent(in), optional :: template
1907 logical, intent(in), optional :: attr_only
1909 character(len=40) :: ltemplate
1911 type(dbametaanddatalist) :: metaanddatal
1914 metaanddatal=dbametaanddatalist()
1916 call v7d2dba(this%vol7d,metaanddatal)
1920 if (this%file) call this%handle%remove_all()
1923 call metaanddatal%extrude(session=this%handle,filter=filter,attronly=attr_only,template=template)
1936 call filter%dbaset(this%handle)
1938 ltemplate=this%handle%template
1939 if ( present(template)) then
1943 call this%handle%messages_write_next(ltemplate)
1946 call this%handle%remove_all()
1950 stat = metaanddatal%delete()
1952 end subroutine vol7d_dballe_export
1955 subroutine v7d2dba(v7d,metaanddatal)
1956 TYPE(vol7d), INTENT(in) :: v7d
1957 type(dbametaanddatalist), intent(inout) :: metaanddatal
1959 TYPE(vol7d_serialize_dballe) :: serialize
1961 serialize = vol7d_serialize_dballe_new()
1962 serialize%anaonly=.true.
1963 call serialize%vol7d_serialize_setup(v7d)
1964 call serialize%vol7d_serialize_export(metaanddatal)
1966 serialize = vol7d_serialize_dballe_new()
1967 serialize%dataonly=.true.
1968 call serialize%vol7d_serialize_setup(v7d)
1969 call serialize%vol7d_serialize_export(metaanddatal)
1971 end subroutine v7d2dba
classe per import ed export di volumi da e in DB-All.e
|