65 CHARACTER(CHRLEN) :: RCSIdentString = &
66 '$RCSfile: RFLU_ModVertexLists.F90,v $ $Revision: 1.4 $'
108 TYPE(t_region
),
POINTER :: pregion
114 INTEGER :: errorflag,icg,icl,ict,ivg,ivl,v2cbeg,v2cdegrsum,v2cend,v2cindx
115 INTEGER,
DIMENSION(:),
ALLOCATABLE :: v2cdegr
116 TYPE(t_grid),
POINTER :: pgrid
123 global => pregion%global
126 'RFLU_ModVertexLists.F90')
128 IF ( global%myProcid == masterproc .AND. &
129 global%verbLevel >= verbose_high )
THEN
130 WRITE(stdout,
'(A,1X,A)') solver_name, &
131 'Building vertex-to-cell list...'
138 pgrid => pregion%grid
144 ALLOCATE(v2cdegr(pgrid%nVertTot),stat=errorflag)
145 global%error = errorflag
146 IF ( global%error /= err_none )
THEN
147 CALL
errorstop(global,err_allocate,__line__,
'v2cDegr')
150 DO ivg = 1,pgrid%nVertTot
158 DO icg = 1,pgrid%nCellsTot
160 icl = pgrid%cellGlob2Loc(2,icg)
163 CASE ( cell_type_tet )
165 ivg = pgrid%tet2v(ivl,icl)
166 v2cdegr(ivg) = v2cdegr(ivg) + 1
168 CASE ( cell_type_hex )
170 ivg = pgrid%hex2v(ivl,icl)
171 v2cdegr(ivg) = v2cdegr(ivg) + 1
173 CASE ( cell_type_pri )
175 ivg = pgrid%pri2v(ivl,icl)
176 v2cdegr(ivg) = v2cdegr(ivg) + 1
178 CASE ( cell_type_pyr )
180 ivg = pgrid%pyr2v(ivl,icl)
181 v2cdegr(ivg) = v2cdegr(ivg) + 1
184 CALL
errorstop(global,err_reached_default,__line__)
194 DO ivg = 1,pgrid%nVertTot
196 pgrid%v2cInfo(v2c_beg,ivg) = pgrid%v2cInfo(v2c_end,ivg-1) + 1
198 pgrid%v2cInfo(v2c_beg,ivg) = 1
201 v2cdegrsum = v2cdegrsum + v2cdegr(ivg)
203 pgrid%v2cInfo(v2c_end,ivg) = v2cdegrsum
210 ALLOCATE(pgrid%v2c(v2cdegrsum),stat=errorflag)
211 global%error = errorflag
212 IF ( global%error /= err_none )
THEN
213 CALL
errorstop(global,err_allocate,__line__,
'pGrid%v2c')
220 DO ivg = 1,pgrid%nVertTot
224 DO icg = 1,pgrid%nCellsTot
226 icl = pgrid%cellGlob2Loc(2,icg)
229 CASE ( cell_type_tet )
231 ivg = pgrid%tet2v(ivl,icl)
232 v2cindx = pgrid%v2cInfo(v2c_beg,ivg) + v2cdegr(ivg)
233 pgrid%v2c(v2cindx) = icg
234 v2cdegr(ivg) = v2cdegr(ivg) + 1
236 CASE ( cell_type_hex )
238 ivg = pgrid%hex2v(ivl,icl)
239 v2cindx = pgrid%v2cInfo(v2c_beg,ivg) + v2cdegr(ivg)
240 pgrid%v2c(v2cindx) = icg
241 v2cdegr(ivg) = v2cdegr(ivg) + 1
243 CASE ( cell_type_pri )
245 ivg = pgrid%pri2v(ivl,icl)
246 v2cindx = pgrid%v2cInfo(v2c_beg,ivg) + v2cdegr(ivg)
247 pgrid%v2c(v2cindx) = icg
248 v2cdegr(ivg) = v2cdegr(ivg) + 1
250 CASE ( cell_type_pyr )
252 ivg = pgrid%pyr2v(ivl,icl)
253 v2cindx = pgrid%v2cInfo(v2c_beg,ivg) + v2cdegr(ivg)
254 pgrid%v2c(v2cindx) = icg
255 v2cdegr(ivg) = v2cdegr(ivg) + 1
258 CALL
errorstop(global,err_reached_default,__line__)
266 DEALLOCATE(v2cdegr,stat=errorflag)
267 global%error = errorflag
268 IF ( global%error /= err_none )
THEN
269 CALL
errorstop(global,err_deallocate,__line__,
'v2cDegr')
273 #ifdef CHECK_DATASTRUCT
278 WRITE(stdout,
'(A)') solver_name
279 WRITE(stdout,
'(A,1X,A)') solver_name,
'### START CHECK OUTPUT ###'
280 WRITE(stdout,
'(A,1X,A)') solver_name,
'Vertex-to-cell list'
282 DO ivg = 1,pgrid%nVertTot
283 v2cbeg = pgrid%v2cInfo(v2c_beg,ivg)
284 v2cend = pgrid%v2cInfo(v2c_end,ivg)
286 WRITE(stdout,
'(A,1X,I6,1X,I3,3X,20(1X,I6))') solver_name,ivg, &
287 v2cend-v2cbeg+1,pgrid%v2c(v2cbeg:v2cend)
295 IF ( global%myProcid == masterproc .AND. &
296 global%verbLevel >= verbose_high )
THEN
297 WRITE(stdout,
'(A,1X,A)') solver_name, &
298 'Building vertex-to-cell list done.'
339 TYPE(t_region
),
POINTER :: pregion
345 INTEGER :: errorflag,
ic
346 TYPE(t_grid),
POINTER :: pgrid
353 global => pregion%global
356 'RFLU_ModVertexLists.F90')
358 IF ( global%myProcid == masterproc .AND. &
359 global%verbLevel >= verbose_high )
THEN
360 WRITE(stdout,
'(A,1X,A)') solver_name, &
361 'Creating vertex-to-cell list...'
374 pgrid => pregion%grid
380 ALLOCATE(pgrid%v2cInfo(v2c_beg:v2c_end,pgrid%nVertTot),stat=errorflag)
381 global%error = errorflag
382 IF ( global%error /= err_none )
THEN
383 CALL
errorstop(global,err_allocate,__line__,
'v2cInfo')
390 IF ( global%myProcid == masterproc .AND. &
391 global%verbLevel >= verbose_high )
THEN
392 WRITE(stdout,
'(A,1X,A)') solver_name, &
393 'Creating vertex-to-cell list done.'
433 TYPE(t_region
),
POINTER :: pregion
440 TYPE(t_grid),
POINTER :: pgrid
447 global => pregion%global
450 'RFLU_ModVertexLists.F90')
452 IF ( global%myProcid == masterproc .AND. &
453 global%verbLevel >= verbose_high )
THEN
454 WRITE(stdout,
'(A,1X,A)') solver_name, &
455 'Destroying vertex-to-cell list...'
462 pgrid => pregion%grid
468 DEALLOCATE(pgrid%v2c,stat=errorflag)
469 global%error = errorflag
470 IF ( global%error /= err_none )
THEN
471 CALL
errorstop(global,err_deallocate,__line__,
'pGrid%v2c')
484 IF ( global%myProcid == masterproc .AND. &
485 global%verbLevel >= verbose_high )
THEN
486 WRITE(stdout,
'(A,1X,A)') solver_name, &
487 'Destroying vertex-to-cell list done.'
528 TYPE(t_region
),
POINTER :: pregion
534 TYPE(t_grid),
POINTER :: pgrid
541 global => pregion%global
544 'RFLU_ModVertexLists.F90')
546 IF ( global%myProcid == masterproc .AND. &
547 global%verbLevel >= verbose_high )
THEN
548 WRITE(stdout,
'(A,1X,A)') solver_name, &
549 'Nullifying vertex-to-cell list...'
556 pgrid => pregion%grid
563 nullify(pgrid%v2cInfo)
569 IF ( global%myProcid == masterproc .AND. &
570 global%verbLevel >= verbose_high )
THEN
571 WRITE(stdout,
'(A,1X,A)') solver_name, &
572 'Nullifying vertex-to-cell list done.'
subroutine, public rflu_nullifyvert2celllist(pRegion)
subroutine registerfunction(global, funName, fileName)
**********************************************************************Rocstar Simulation Suite Illinois Rocstar LLC All rights reserved ****Illinois Rocstar LLC IL **www illinoisrocstar com **sales illinoisrocstar com WITHOUT WARRANTY OF ANY **EXPRESS OR INCLUDING BUT NOT LIMITED TO THE WARRANTIES **OF FITNESS FOR A PARTICULAR PURPOSE AND **NONINFRINGEMENT IN NO EVENT SHALL THE CONTRIBUTORS OR **COPYRIGHT HOLDERS BE LIABLE FOR ANY DAMAGES OR OTHER WHETHER IN AN ACTION OF TORT OR **Arising OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE **USE OR OTHER DEALINGS WITH THE SOFTWARE **********************************************************************INTERFACE SUBROUTINE ic
subroutine, public rflu_createvert2celllist(pRegion)
subroutine, public rflu_destroyvert2celllist(pRegion)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)
subroutine, public rflu_buildvert2celllist(pRegion)
INTEGER function, public rflu_getglobalcelltype(global, pGrid, icg)