84 CHARACTER(CHRLEN) :: rcsidentstring, stamp, outfmt,
msg, &
85 verbosity, versionstring, headerstring
87 INTEGER :: ilev, outputformat
88 INTEGER :: margin, versionwidth, errorflag
91 INTEGER,
PARAMETER :: headerwidth = 53
92 INTEGER,
PARAMETER :: nstats_tec_plag = 10
95 LOGICAL :: statsactive
99 TYPE(t_region
),
POINTER :: regions(:)
100 TYPE(t_plag) ,
POINTER :: pplag
104 rcsidentstring =
'$RCSfile: PLAG_PostProcessing.F90,v $ $Revision: 1.5 $'
113 global%verbLevel = verbose_none
115 global%flowType = flow_steady
116 global%currentTime = -1._rfreal
117 global%currentIter = -1
122 global%nProcAlloc = 1
123 global%myProcid = masterproc
124 global%mpierr = err_none
125 global%error = err_none
127 global%pi = 4._rfreal*atan(1._rfreal)
128 global%rad = global%pi/180._rfreal
130 global%startLevel = 1
135 CALL mpi_init( global%mpierr )
136 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,__line__ )
142 versionwidth = len_trim(versionstring)
143 margin = (headerwidth-versionwidth)/2
144 headerstring(margin+1:margin+versionwidth) = versionstring(1:versionwidth)
145 headerstring(1:1) =
'*'
146 headerstring(headerwidth:headerwidth) =
'*'
148 WRITE(stdout,
'(/,A)') solver_name//
' *****************************************************'
149 WRITE(stdout,
'(A)') solver_name//
' * *'
150 WRITE(stdout,
'(A)') solver_name//
' * ROCPART: Solution Postprocessing *'
151 WRITE(stdout,
'(A)') solver_name//
' * ================================ *'
152 WRITE(stdout,
'(A)') solver_name//
' * *'
153 WRITE(stdout,
'(A)') solver_name//
' '//trim(headerstring)
154 WRITE(stdout,
'(A)') solver_name//
' * Copyright (c) by the University of Illinois *'
155 WRITE(stdout,
'(A)') solver_name//
' * *'
156 WRITE(stdout,
'(A,/)') solver_name//
' *****************************************************'
160 CALL getarg(1,global%casename)
162 CALL getarg(3,outfmt)
163 CALL getarg(4,verbosity)
165 IF (len_trim(global%casename)==0 .OR. &
166 len_trim(stamp)==0 .OR. &
167 len_trim(verbosity)==0 .OR. &
168 len_trim(outfmt)==0)
THEN
169 WRITE(stdout,
'(/,A,/,A,/,9(A,/))') &
170 solver_name//
' Usage: plagpost <casename> <time> <format> <verbosity>', &
172 solver_name//
' time = time ', &
174 solver_name//
' format = 3 - Tecplot ASCII',&
176 solver_name//
' verbosity = 0-2 '
178 CALL mpi_finalize( global%mpierr )
183 READ(outfmt ,*) outputformat
185 IF (outputformat <= 1)
THEN
186 outputformat = plot_fmt_generic
187 ELSE IF (outputformat == 2)
THEN
188 outputformat = plot_fmt_tecplot
190 outputformat = plot_fmt_tecascii
196 IF (outputformat == plot_fmt_tecplot)
THEN
197 WRITE(stdout,
'(/,A,/)') solver_name// &
198 ' Sorry, not linked to TECPLOT library.'
200 CALL mpi_finalize( global%mpierr )
206 READ(verbosity,*) global%verbLevel
210 WRITE(stdout,
'(/,A)') solver_name//
' Reading region topology ...'
214 DO ireg=1,global%nRegions
215 regions(ireg)%startLevel = global%startLevel
216 regions(ireg)%currLevel = global%startLevel
217 IF (regions(ireg)%nGridLevels < regions(ireg)%currLevel)
THEN
218 WRITE(
msg,1000) solver_name,ireg,global%startLevel
225 WRITE(stdout,
'(/,A)') solver_name//
' Reading user input ...'
231 IF (global%flowType == flow_steady)
THEN
232 WRITE(stdout,
'(/,A,/)') solver_name// &
233 ' Sorry, unable to run Rocpart Post-processing ', &
234 ' tool for steady state case.'
236 CALL mpi_finalize( global%mpierr )
240 READ(stamp,*) global%timeStamp
241 global%currentTime = global%timeStamp
247 WRITE(stdout,
'(/,A,/)') solver_name// &
248 ' Sorry, unable to run Rocpart Post-processing ', &
249 ' tool since code was not compiled with PLAG.'
251 CALL mpi_finalize( global%mpierr )
257 statsactive = ( (global%plagUsed .EQV. .true.) .AND. &
258 (global%flowType == flow_unsteady) .AND. &
259 (global%doStat == active) )
264 WRITE(stdout,
'(A)') solver_name// &
265 ' Reading ROCPART solution and writing plot file ...'
267 DO ireg=1,global%nRegions
281 DO ireg=1,global%nRegions
283 WRITE(stdout,
'(A,I5.5)') solver_name//
' - region ',ireg
285 ilev = regions(ireg)%currLevel
289 npclssum = npclssum + regions(ireg)%levels(ilev)%plag%nPcls
291 IF ( ireg == global%nRegions ) &
292 WRITE(stdout,
'(A,I8.8)')
'Total Number of Particles = ',npclssum
300 SELECT CASE ( outputformat )
304 CASE ( plot_fmt_tecascii )
308 CALL
errorstop(global,err_reached_default,__line__)
314 DO ireg=1,global%nRegions
315 IF ( ireg == 41 .OR. ireg == 52 )
THEN
324 DO ireg=1,global%nRegions
330 DO ireg=1,global%nRegions
338 global%currentTime = global%timeStamp
343 IF ( statsactive .EQV. .true. )
THEN
347 IF ( global%plagNStat > 0 )
THEN
348 IF ( global%plagNStat < nstats_tec_plag ) &
349 CALL
errorstop( global,err_stats_tecplot,__line__, &
350 'plagNStat < NSTATS_TEC_PLAG' )
355 DO ireg=1,global%nRegions
359 IF ( ireg== 1 .AND. global%myProcid == masterproc .AND. &
360 global%verbLevel > verbose_none )
THEN
361 WRITE(stdout,
'(A,3X,A)') solver_name,
'Allocating memory for statistics...'
364 DO ilev=1,regions(ireg)%nGridLevels
365 pplag => regions(ireg)%levels(ilev)%plag
369 IF ( ireg == global%nRegions .AND. global%myProcid == masterproc .AND. &
370 global%verbLevel > verbose_none )
THEN
371 WRITE(stdout,
'(A,3X,A)') solver_name,
'Allocating memory for statistics done...'
376 IF ( ireg== 1 .AND. global%myProcid == masterproc .AND. &
377 global%verbLevel > verbose_none )
THEN
378 WRITE(stdout,
'(A,3X,A)') solver_name,
'Reading statistics solution file for PLAG...'
383 IF ( ireg == global%nRegions .AND. global%myProcid == masterproc .AND. &
384 global%verbLevel > verbose_none )
THEN
385 WRITE(stdout,
'(A,3X,A)') solver_name,
'Reading statistics solution file for PLAG done...'
390 WRITE(stdout,
'(A,I5.5)') solver_name//
' Statistics - region ',ireg
392 SELECT CASE ( outputformat )
396 CASE ( plot_fmt_tecascii )
400 CALL
errorstop(global,err_reached_default,__line__)
405 IF ( ireg== 1 .AND. global%myProcid == masterproc .AND. &
406 global%verbLevel > verbose_none )
THEN
407 WRITE(stdout,
'(A,3X,A)') solver_name,
'Deallocating memory for statistics...'
410 DO ilev=1,regions(ireg)%nGridLevels
411 pplag => regions(ireg)%levels(ilev)%plag
415 IF ( ireg == global%nRegions .AND. global%myProcid == masterproc .AND. &
416 global%verbLevel > verbose_none )
THEN
417 WRITE(stdout,
'(A,3X,A)') solver_name,
'Deallocating memory for statistics done...'
430 WRITE(stdout,
'(/,A)') solver_name//
' Finished.'
433 CALL mpi_finalize( global%mpierr )
436 1000
FORMAT(
a,
' Region ',i5,
', grid level= ',i2,
'.')
subroutine plag_deallocatememorypost(region, iReg)
subroutine, public plag_createstat(pRegion, pPlag)
subroutine plag_readsolutionfilepost(regions)
subroutine registerfunction(global, funName, fileName)
subroutine plag_allocatememorypost(region, iReg)
subroutine plag_intrpmixtproperties(region)
subroutine buildversionstring(versionString)
subroutine plag_processeulerfield(regions, iReg, nPclsSum)
subroutine plag_writetecplotascii(iReg, iLev, region)
subroutine plag_binsortnozzleinlet(iReg, iLev, region, iRegBin)
subroutine plag_binsortspatialdist(iReg, iLev, region, iRegBin)
subroutine plag_writestattecascii(regions, iReg)
subroutine plag_calcderivedvariables(region)
subroutine plag_readstatpost(regions, iReg)
subroutine rflo_readregiontopology(global, regions)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine, public plag_destroystat(pRegion, pPlag)
subroutine deregisterfunction(global)