215 class(PrtOcType) :: this
217 character(len=LINELENGTH) :: trackfile, trackcsv
218 type(PrtOcParamFoundType) :: found
219 integer(I4B),
pointer :: evinput
221 character(len=*),
parameter :: fmttrkbin = &
222 "(4x, 'PARTICLE TRACKS WILL BE SAVED TO BINARY FILE: ', a, /4x, &
223 &'OPENED ON UNIT: ', I0)"
224 character(len=*),
parameter :: fmttrkcsv = &
225 "(4x, 'PARTICLE TRACKS WILL BE SAVED TO CSV FILE: ', a, /4x, &
226 &'OPENED ON UNIT: ', I0)"
230 write (this%iout,
'(/,1x,a,/)')
'PROCESSING OC OPTIONS'
233 call this%OutPutControlType%source_options()
236 call mem_set_value(trackfile,
'TRACKFILE', this%input_mempath, &
238 call mem_set_value(trackcsv,
'TRACKCSVFILE', this%input_mempath, &
240 call mem_set_value(evinput,
'TRACK_RELEASE', this%input_mempath, &
242 call mem_set_value(evinput,
'TRACK_EXIT', this%input_mempath, &
244 call mem_set_value(evinput,
'TRACK_SUBF_EXIT', this%input_mempath, &
245 found%track_subf_exit)
246 call mem_set_value(evinput,
'TRACK_DROPPED', this%input_mempath, &
248 call mem_set_value(evinput,
'TRACK_TIMESTEP', this%input_mempath, &
249 found%track_timestep)
250 call mem_set_value(evinput,
'TRACK_TERMINATE', this%input_mempath, &
251 found%track_terminate)
252 call mem_set_value(evinput,
'TRACK_WEAKSINK', this%input_mempath, &
253 found%track_weaksink)
254 call mem_set_value(evinput,
'TRACK_USERTIME', this%input_mempath, &
255 found%track_usertime)
256 call mem_set_value(evinput,
'DEV_DUMP_EVTRACE', this%input_mempath, &
257 found%dev_dump_evtrace)
258 call mem_set_value(evinput,
'SCRATCH_BUFFER', this%input_mempath, &
259 found%scratch_buffer)
261 if (found%track_release) this%trackrelease = .true.
262 if (found%track_exit) this%trackfeatexit = .true.
263 if (found%track_subf_exit) this%tracksubfexit = .true.
264 if (found%track_dropped) this%trackdropped = .true.
265 if (found%track_timestep) this%tracktimestep = .true.
266 if (found%track_terminate) this%trackterminate = .true.
267 if (found%track_weaksink) this%trackweaksink = .true.
268 if (found%track_usertime) this%trackusertime = .true.
269 if (found%dev_dump_evtrace) this%dump_event_trace = .true.
270 if (found%scratch_buffer) this%scratch_buffer = .true.
272 if (this%scratch_buffer)
then
273 write (this%iout,
'(4x,a)')
'TRACK EVENT BUFFER: SCRATCH FILE'
275 write (this%iout,
'(4x,a)')
'TRACK EVENT BUFFER: MEMORY'
279 if (.not. (found%track_release .or. &
280 found%track_exit .or. &
281 found%track_timestep .or. &
282 found%track_terminate .or. &
283 found%track_weaksink .or. &
284 found%track_usertime .or. &
285 found%track_dropped))
then
286 this%trackrelease = .true.
287 this%trackfeatexit = .true.
288 this%tracktimestep = .true.
289 this%trackterminate = .true.
290 this%trackweaksink = .true.
291 this%trackusertime = .true.
292 this%trackdropped = .true.
295 if (found%trackfile)
then
298 call openfile(this%itrkout, this%iout, trackfile,
'DATA(BINARY)', &
301 write (this%iout, fmttrkbin) trim(adjustl(trackfile)), this%itrkout
304 trackfile = trim(trackfile)//
'.hdr'
305 call openfile(this%itrkhdr, this%iout, trackfile,
'CSV', &
306 filstat_opt=
'REPLACE', mode_opt=mnormal)
310 if (found%trackcsvfile)
then
312 call openfile(this%itrkcsv, this%iout, trackcsv,
'CSV', &
313 filstat_opt=
'REPLACE')
314 write (this%iout, fmttrkcsv) trim(adjustl(trackcsv)), this%itrkcsv
318 write (this%iout,
'(1x,a)')
'END OF OC OPTIONS'
Particle track output module.
character(len= *), parameter, public trackheader
character(len= *), parameter, public trackdtypes