Download CO5BOLD User Manual
Transcript
4.7
IDL UIO Routines
65
ierr=0
delvar, listdata
;
; --- Loop over all datasets --while (ierr eq 0) do begin &$
; --- Read the next dataset --ful=uio_datasetlist_rd(’testmodel_0?.full’, listdata=listdata, ierr=ierr) &$
if (ierr eq 0) then begin &$
print, ’--- ’, ful.z.time, format=’(A,E15.8)’ &$
;
; --- Now do the data handling (demo) --print, ’Mean density: ’, avg(ful.z.rho) &$
endif &$
endwhile
or in the more detailed example
model=’st33gm06n03’ & modelident=’_??’ & parmodelident=’_01’
modeldisk=getenv(’HOME’) + ’/dat/rhd/d’ + model + ’/’
;
modelfile=modeldisk + model + modelident
+ ’.full’
parfile =modeldisk + model + parmodelident + ’.par’
;
; --- Read parameter file --par=uio_struct_rd(parfile)
;
; --- Open first dataset to get some information about array sizes --delvar, listdata
ful=uio_datasetlist_rd(modelfile, listdata=listdata, ierr=ierr)
uio_closrd, listdata.channel
delvar, listdata
;
nxc1=n_elements(ful.z.xc1)
nxc2=n_elements(ful.z.xc2)
nxc3=n_elements(ful.z.xc3)
;
n_timestep=1000 ; --- Some huge value to get everything. Reduce for tests! --ierr=0
i=0
;
; --- Loop over all datasets --while ((ierr eq 0) and (i lt n_timestep)) do begin &$
; --- Read the next dataset --ful=uio_datasetlist_rd(modelfile, listdata=listdata, ierr=ierr) &$
if (ierr eq 0) then begin &$
print, ’--- ’, i, ful.z.itime, ful.z.time, format=’(A,I4,I6,E15.8)’ &$
;
; --- Now do the data handling (demo) --print, ’Mean density: ’, avg(ful.z.rho) &$
;
i=i+1 &$
endif &$
endwhile
All necessary counter information is stored in the structure listdata.
Note, that you can specify an entire group of files with e.g. modelident=’_*’,
modelident=’_??’, modelident=’_3?’, or modelident=’_{29,3[0-2]}’.