libsim Versione 7.2.1

◆ dbasession_init()

recursive type(dbasession) function dbasession_init ( type(dbaconnection), intent(in), optional  connection,
character (len=*), intent(in), optional  anaflag,
character (len=*), intent(in), optional  dataflag,
character (len=*), intent(in), optional  attrflag,
character (len=*), intent(in), optional  filename,
character (len=*), intent(in), optional  mode,
character(len=*), intent(in), optional  format,
character (len=*), intent(in), optional  template,
logical, intent(in), optional  write,
logical, intent(in), optional  wipe,
character(len=*), intent(in), optional  repinfo,
logical, intent(in), optional  simplified,
logical, intent(in), optional  memdb,
logical, intent(in), optional  loadfile,
character(len=*), intent(in), optional  categoryappend 
)
private

Constructor Without parameter it is initialized to missing.

Parametri
[in]connectiondballe connection
[in]anaflagcontrols access to pseudoana records and can have these values "read": pseudoana records cannot be modified; "write": pseudoana records can be added and removed.
[in]dataflagcontrol access to observed data and can have these values "read": data cannot be modified in any way; "add": data can be added to the database, but existing data cannot be modified. Deletions are disabled. This is used to insert new data in the database while preserving the data that was already present in it; "write": data can freely be added, overwritten and deleted.
[in]attrflagcontrols access to data attributes and can have these values "read": attributes cannot be modified in any way; "write": attributes can freely be added, overwritten and deleted. Note that some combinations are illegal, such as pseudoana=read and data=add (when adding a new data, it's sometimes necessary to insert new pseudoana records), or data=rewrite and attr=read (when deleting data, their attributes are deleted as well).
[in]filenameoptional file name to use
[in]mode"r"/"w"/"a" the open mode ("r" for read, "w" for write or create, "a" for append)
[in]templatetemplate to use for write on file
[in]writeenable write on DSN/file ( default=.false. )
[in]wipeclean DSN/file and initialize it ( default=.false. )
[in]repinfooptional file repinfo.csv to use with wipe ( default="" )
[in]formatthe file format. It can be "BUFR", "CREX" or "JSON". (default="BUFR")
[in]simplifiedrappresentation for interpreted message (simplified/precise)
[in]memdbif true set a memdb ready for import data from file (default=true if filename present else false)
[in]loadfileif true import from file to memdb (default=true if filename present else false)
[in]categoryappendname to append to namespace category of log4fortran

Definizione alla linea 3996 del file dballe_class.F03.

3998
3999 else
4000 dbasession_init%memconnection=connection
4001 !call self with memconnection without filename
4002 dbasession_init=dbasession(dbasession_init%memconnection,&
4003 write=.true.,wipe=lwrite,repinfo=lrepinfo,&
4004 memdb=lmemdb,loadfile=lloadfile) ! without categoryappend
4005
4006 end if
4007
4008 if (lmode == "r") then
4009 call dbasession_init%messages_open_input(filename=filename,mode=lmode,&
4010 format=lformat,simplified=lsimplified)
4011
4012 if (lloadfile)then
4013 read_next = dbasession_init%messages_read_next()
4014 do while (read_next)
4015 read_next = dbasession_init%messages_read_next()
4016 end do
4017 end if
4018 else
4019
4020 call dbasession_init%messages_open_output(filename=filename,&
4021 mode=lmode,format=lformat)
4022
4023 end if
4024
4025 else
4026
4027 ier = idba_messaggi(dbasession_init%sehandle,filename, lmode, lformat)
4028
4029 end if
4030
4031else
4032
4033 ier = idba_preparati(connection%dbhandle,dbasession_init%sehandle, lanaflag, ldataflag, lattrflag)
4034 if (lwipe)ier=idba_scopa(dbasession_init%sehandle,lrepinfo)
4035
4036end if
4037
4038dbasession_init%file=lfile
4039if (dbasession_init%file) dbasession_init%filename=filename
4040dbasession_init%mode=lmode
4041dbasession_init%format=lformat
4042dbasession_init%simplified=lsimplified
4043dbasession_init%memdb=lmemdb
4044dbasession_init%loadfile=lloadfile
4045dbasession_init%template=ltemplate
4046
4047!!$print*,"--------------- at end ---------------------------------"
4048!!$print *,'file',dbasession_init%file
4049!!$print *,'filename',trim(dbasession_init%filename)
4050!!$print *,'mode',dbasession_init%mode
4051!!$print *,'format',dbasession_init%format
4052!!$print *,'simplified',dbasession_init%simplified
4053!!$print *,'memdb',dbasession_init%memdb
4054!!$print *,'loadfile',dbasession_init%loadfile
4055!!$print *,'template',dbasession_init%template
4056!!$print*,"------------------------------------------------"
4057
4058end function dbasession_init
4059
4060
4062subroutine dbasession_unsetall(session)
4063class(dbasession), intent(in) :: session
4064integer :: ier
4065
4066if (c_e(session%sehandle)) then
4067 ier = idba_unsetall(session%sehandle)
4068end if
4069
4070end subroutine dbasession_unsetall
4071
4072
4074subroutine dbasession_remove_all(session)
4075class(dbasession), intent(in) :: session
4076integer :: ier
4077
4078if (c_e(session%sehandle)) then
4079 ier = idba_remove_all(session%sehandle)
4080end if
4081
4082end subroutine dbasession_remove_all
4083
4084
4086subroutine dbasession_prendilo(session)
4087class(dbasession), intent(in) :: session
4088integer :: ier
4089
4090if (c_e(session%sehandle)) then
4091 ier = idba_prendilo(session%sehandle)
4092end if
4093
4094end subroutine dbasession_prendilo
4095
4097subroutine dbasession_var_related(session,btable)
4098class(dbasession), intent(in) :: session
4099character(len=*),INTENT(IN) :: btable
4100integer :: ier
4101
4102if (c_e(session%sehandle)) then
4103 ier = idba_set(session%sehandle,"*var_related",btable)
4104end if
4105
4106end subroutine dbasession_var_related
4107
4109subroutine dbasession_setcontextana(session)
4110class(dbasession), intent(in) :: session
4111integer :: ier
4112
4113if (c_e(session%sehandle)) then
4114 ier = idba_setcontextana(session%sehandle)
4115end if
4116
4117end subroutine dbasession_setcontextana
4118
4120subroutine dbasession_dimenticami(session)
4121class(dbasession), intent(in) :: session
4122integer :: ier
4123
4124if (c_e(session%sehandle)) then
4125 ier = idba_dimenticami(session%sehandle)
4126end if
4127
4128end subroutine dbasession_dimenticami
4129
4131subroutine dbasession_critica(session)
4132class(dbasession), intent(in) :: session
4133integer :: ier
4134
4135if (c_e(session%sehandle)) then
4136 ier = idba_critica(session%sehandle)
4137end if
4138
4139end subroutine dbasession_critica
4140
4142subroutine dbasession_scusa(session)
4143class(dbasession), intent(in) :: session
4144integer :: ier
4145
4146if (c_e(session%sehandle)) then
4147 ier = idba_scusa(session%sehandle)
4148end if
4149
4150end subroutine dbasession_scusa
4151
4153subroutine dbasession_set(session,metadata,datav,data,datetime,ana,network,level,timerange,filter)
4154class(dbasession), intent(in) :: session
4155type (dbametadata),optional :: metadata
4156class(dbadcv),optional :: datav
4157class(dbadata),optional :: data
4158type (dbadatetime),optional :: datetime
4159type (dbaana),optional :: ana
4160type (dbanetwork),optional :: network
4161type (dbalevel),optional :: level
4162type (dbatimerange),optional :: timerange
4163type (dbafilter),optional :: filter
4164
4165if (present(metadata)) then
4166 call metadata%dbaset(session)
4167endif
4168
4169if (present(datetime)) then
4170 call datetime%dbaset(session)
4171endif
4172
4173if (present(ana)) then
4174 call ana%dbaset(session)
4175endif
4176
4177if (present(network)) then
4178 call network%dbaset(session)
4179endif
4180
4181if (present(level)) then
4182 call level%dbaset(session)
4183endif
4184
4185if (present(timerange)) then
4186 call timerange%dbaset(session)
4187endif
4188
4189if (present(datav)) then
4190 call datav%dbaset(session)
4191end if
4192
4193if (present(data)) then
4194 call data%dbaset(session)
4195end if
4196
4197if (present(filter)) then
4198 call filter%dbaset(session)
4199end if
4200
4201end subroutine dbasession_set
4202
4203
4204!!! Those are for reverse order call session%extrude(object)
4205
4206!!$!> put data on DSN
4207!!$subroutine dbasession_extrude_ana(session,ana)
4208!!$class(dbasession), intent(in) :: session
4209!!$class(dbaana) :: ana !< ana
4210!!$call ana%extrude(session)
4211!!$end subroutine dbasession_extrude_ana
4212!!$
4213!!$!> put data on DSN
4214!!$subroutine dbasession_extrude_dataattr(session,dataattr)
4215!!$class(dbasession), intent(in) :: session
4216!!$class(dbadataattr) :: dataattr !< dataattr
4217!!$call dataattr%extrude(session)
4218!!$end subroutine dbasession_extrude_dataattr
4219!!$
4220!!$!> put data on DSN
4221!!$subroutine dbasession_extrude_dataattrv(session,dataattrv,noattr,filter)
4222!!$class(dbasession), intent(in) :: session
4223!!$class(dbadataattrv) :: dataattrv !< array datatattr
4224!!$logical, intent(in),optional :: noattr !< set to .true. to get data only (no attribute)
4225!!$type(dbafilter),intent(in),optional :: filter !< use this to filter wanted data
4226!!$
4227!!$call dataattrv%extrude(session,noattr,filter)
4228!!$end subroutine dbasession_extrude_dataattrv
4229!!$
4230!!$!> put data on DSN
4231!!$subroutine dbasession_extrude_metaanddata(session,metaanddata,noattr,filter)
4232!!$class(dbasession), intent(in) :: session
4233!!$class(dbametaanddata) :: metaanddata !< metaanddata
4234!!$logical, intent(in),optional :: noattr !< set to .true. to get data only (no attribute)
4235!!$type(dbafilter),intent(in),optional :: filter !< use this to filter wanted data
4236!!$
4237!!$call metaanddata%extrude(session,noattr,filter)
4238!!$end subroutine dbasession_extrude_metaanddata
4239!!$
4240!!$!> put data on DSN
4241!!$subroutine dbasession_extrude_metaanddatai(session,metaanddatai)
4242!!$class(dbasession), intent(in) :: session
4243!!$class(dbametaanddatai) :: metaanddatai !< metaanddatai
4244!!$call metaanddatai%extrude(session)
4245!!$end subroutine dbasession_extrude_metaanddatai

Generated with Doxygen.