65 TYPE(t_region
),
POINTER :: regions(:)
67 INTEGER,
INTENT(IN) :: ireg
70 INTEGER ::
i,
j,
k, ijk,
icorner, icorncellbuff, ipcls
73 CHARACTER(CHRLEN) :: rcsidentstring
75 INTEGER :: ilev, ipclsregin, ncorners, npcls, npclsprev
76 INTEGER :: icoff, ijcoff
78 INTEGER :: iccdes, jccdes, kccdes, ijkccdes
82 INTEGER :: icoffdes, ijcoffdes, ndumcellsdes, iregdes
83 INTEGER :: ibegcorncell, iendcorncell
84 INTEGER :: errorflag,iccmax
85 INTEGER :: lpclsfoundincorncellsum
86 INTEGER :: npclsbeg, npclsend
88 INTEGER,
DIMENSION(9) :: lpclsfoundincorncell
89 INTEGER,
POINTER,
DIMENSION(:,:) :: paiv, paivold
90 INTEGER,
POINTER,
DIMENSION(:,:) :: paivc, paivoldc
91 INTEGER,
ALLOCATABLE,
DIMENSION(:,:) :: corncellcounter
93 LOGICAL :: pclsfoundincorncell
95 REAL(RFREAL),
POINTER,
DIMENSION(:,:) :: parv, parvold, pcv, pcvold, &
96 pdv, ptv, prhs, prhssum
97 REAL(RFREAL),
POINTER,
DIMENSION(:,:) :: parvc, parvoldc,pcvc, pcvoldc, &
98 pdvc, ptvc, prhsc, prhssumc
100 TYPE(t_region
),
POINTER :: pregion
101 TYPE(t_level
),
POINTER :: plevel
102 TYPE(t_plag),
POINTER :: pplag
109 '$RCSfile: PLAG_CornCellsLoadData.F90,v $ $Revision: 1.4 $'
111 global => regions(ireg)%global
114 'PLAG_CornCellsLoadData.F90' )
118 ilev = regions(ireg)%currLevel
119 npcls = regions(ireg)%levels(ilev)%plag%nPcls
124 pregion => regions(ireg)
125 plevel => regions(ireg)%levels(ilev)
133 prhssum => pplag%rhsSum
135 paivold => pplag%aivOld
136 parvold => pplag%arvOld
137 pcvold => pplag%cvOld
141 IF ( pplag%nPcls == 0 ) goto 3999
157 pclsfoundincorncell = .false.
158 lpclsfoundincorncell = 0
164 IF( plevel%cornerCells(
icorner)%interact ) &
165 iccmax =
max(iccmax,ubound(plevel%cornerCells(
icorner)%cells,1))
168 ALLOCATE( corncellcounter(ncorners,iccmax),stat=errorflag )
169 global%error = errorflag
170 IF (global%error /= err_none) &
171 CALL
errorstop( global,err_allocate,__line__ )
175 #ifdef PLAG_CECELLS_DEBUG
176 print*,
'PLAG_CornCellsLoadData: iReg,iCCMax = ', ireg, iccmax
183 icplag = paiv(aiv_plag_indexi,ipcls)
184 jcplag = paiv(aiv_plag_indexj,ipcls)
185 kcplag = paiv(aiv_plag_indexk,ipcls)
186 ijkcplag = paiv(aiv_plag_icells,ipcls)
188 lpclsfoundincorncell = 0
196 IF ( .NOT. plevel%cornerCells(
icorner)%interact ) goto 999
200 IF( plevel%cornerCells(
icorner)%degenrt /= degenerat_none ) goto 999
208 iendcorncell = indijk(
iend,
jend,kend,icoff,ijcoff)
213 IF ( icplag >=
ibeg .AND. icplag <=
iend .AND. &
214 jcplag >=
jbeg .AND. jcplag <=
jend .AND. &
215 kcplag >=
kbeg .AND. kcplag <= kend )
THEN
216 lpclsfoundincorncell(
icorner) = 1
217 pclsfoundincorncell = .true.
220 #ifdef PLAG_CECELLS_DEBUG
221 print*,
'PLAG_CornCellsLoadData: iReg,iCorner,iPcls,ibeg,iend,jbeg,jend,kbeg,kend,',&
222 'ibegEdgeCell, iendEdgeCell,i-j-kCPlag,ijkCPlag,nPcls,lPclsFoundInEdgeCell',&
224 ibegcorncell, iendcorncell,icplag,jcplag,kcplag,ijkcplag,npcls, &
237 IF ( .NOT. plevel%cornerCells(
icorner)%interact ) goto 2999
241 IF( plevel%cornerCells(
icorner)%degenrt /= degenerat_none ) goto 2999
251 lpclsfoundincorncellsum =
sum( lpclsfoundincorncell )
255 IF ( icplag >=
ibeg .AND. icplag <=
iend .AND. &
256 jcplag >=
jbeg .AND. jcplag <=
jend .AND. &
257 kcplag >=
kbeg .AND. kcplag <= kend ) &
258 pclsfoundincorncell = .true.
260 IF ( lpclsfoundincorncellsum == 0 )
THEN
265 ipclsregin = ipclsregin + 1
267 #ifdef PLAG_CECELLS_DEBUG
268 print*,
' PLAG_CornCellsLoadData: iReg, iCorner, iPcls, iPclsRegIn =',&
269 ireg,
icorner, ipcls, ipclsregin
272 IF ( ipclsregin /= ipcls )
THEN
273 paiv( :,ipclsregin) = paiv( :,ipcls)
274 parv( :,ipclsregin) = parv( :,ipcls)
275 pcv( :,ipclsregin) = pcv( :,ipcls)
276 pdv( :,ipclsregin) = pdv( :,ipcls)
277 ptv( :,ipclsregin) = ptv( :,ipcls)
278 prhs( :,ipclsregin) = prhs( :,ipcls)
279 prhssum(:,ipclsregin) = prhssum(:,ipcls)
281 paivold(:,ipclsregin) = paivold(:,ipcls)
282 parvold(:,ipclsregin) = parvold(:,ipcls)
283 pcvold( :,ipclsregin) = pcvold( :,ipcls)
290 IF ( lpclsfoundincorncell(
icorner) == 1 )
THEN
299 ijkcsrc = indijk(
i,
j,
k,icoff, ijcoff)
303 pcorncellsxbuff => plevel%cornerCells(
icorner)%cells(ijk)%bufferExchPlag
305 paivc => pcorncellsxbuff%aiv
306 parvc => pcorncellsxbuff%arv
307 pcvc => pcorncellsxbuff%cv
308 pdvc => pcorncellsxbuff%dv
309 ptvc => pcorncellsxbuff%tv
310 prhsc => pcorncellsxbuff%rhs
311 prhssumc => pcorncellsxbuff%rhsSum
313 paivoldc => pcorncellsxbuff%aivOld
314 parvoldc => pcorncellsxbuff%arvOld
315 pcvoldc => pcorncellsxbuff%cvOld
319 iregdes = plevel%cornerCells(
icorner)%cells(ijk)%srcRegion
321 IF ( iregdes > 0 .AND. ijkcplag == ijkcsrc .AND. &
322 pcorncellsxbuff%nBuffSize /= 0 )
THEN
323 ijkccdes = plevel%cornerCells(
icorner)%cells(ijk)%srcCell
324 ndumcellsdes = regions(iregdes)%nDumCells
327 CALL
getijk( ijkccdes,icoffdes,ijcoffdes,ndumcellsdes, &
328 iccdes,jccdes,kccdes )
331 icorncellbuff = corncellcounter(
icorner,ijk)
333 #ifdef PLAG_CECELLS_DEBUG
334 WRITE(stdout,*)
' PLAG_CornCellsLoadData: iReg,iPcls,iCorner,iRegDes,iCornCellBuff ', &
335 ireg,ipcls,
icorner,iregdes,icorncellbuff
340 paivc(aiv_plag_icells,icorncellbuff) = ijkccdes
341 paivc(aiv_plag_indexi,icorncellbuff) = iccdes
342 paivc(aiv_plag_indexj,icorncellbuff) = jccdes
343 paivc(aiv_plag_indexk,icorncellbuff) = kccdes
344 paivc(aiv_plag_pidini,icorncellbuff) = paiv(aiv_plag_pidini,ipcls)
345 paivc(aiv_plag_regini,icorncellbuff) = paiv(aiv_plag_regini,ipcls)
346 paivc(aiv_plag_regcrt,icorncellbuff) = iregdes
347 paivc(aiv_plag_burnstat,icorncellbuff) = paiv(aiv_plag_burnstat,ipcls)
348 paivc(aiv_plag_status,icorncellbuff) = paiv(aiv_plag_status,ipcls)
350 paivoldc(: ,icorncellbuff) = paivc(:,icorncellbuff)
354 parvc( :,icorncellbuff) = parv( :,ipcls)
355 pcvc( :,icorncellbuff) = pcv( :,ipcls)
356 pdvc( :,icorncellbuff) = pdv( :,ipcls)
357 ptvc( :,icorncellbuff) = ptv( :,ipcls)
358 prhsc( :,icorncellbuff) = prhs( :,ipcls)
359 prhssumc(:,icorncellbuff) = prhssum(:,ipcls)
361 parvoldc(:,icorncellbuff) = parvold(:,ipcls)
362 pcvoldc( :,icorncellbuff) = pcvold( :,ipcls)
364 #ifdef PLAG_CECELLS_DEBUG
366 ' PLAG_CornCellsLoadData: iReg, iCorner, iCornCellBuff, nCornBuffSize, pAiv', &
367 ireg,
icorner, icorncellbuff, pcorncellsxbuff%nBuffSize,&
368 paivc(aiv_plag_icells,icorncellbuff),&
369 paivc(aiv_plag_indexi,icorncellbuff),&
370 paivc(aiv_plag_indexj,icorncellbuff),&
371 paivc(aiv_plag_indexk,icorncellbuff),&
372 paivc(aiv_plag_pidini,icorncellbuff),&
373 paivc(aiv_plag_regini,icorncellbuff),&
374 paivc(aiv_plag_regcrt,icorncellbuff),&
375 paivc(aiv_plag_burnstat,icorncellbuff)
388 IF ( lpclsfoundincorncellsum == 0 ) goto 1999
390 #ifdef PLAG_CECELLS_DEBUG
391 WRITE(stdout,
'(A,2(2X,I3),2(2X,I4))') &
392 ' PLAG_CornCellsLoadData: iReg, iCorner, iCornCellBuff', &
405 npclsprev = pplag%nPcls
406 IF ( pclsfoundincorncell ) pplag%nPcls = ipclsregin
408 #ifdef PLAG_CECELLS_DEBUG
409 WRITE(stdout,
'(A,I4,2I8,2X,L1)') &
410 ' PLAG_CornCellsLoadData: iReg,nPclsPrev,nPclsCurr,pclsFoundInCornCell = ',&
411 ireg,npclsprev,pplag%nPcls,pclsfoundincorncell
418 IF ( pclsfoundincorncell .AND. pplag%nPcls == 0)
THEN
419 npclsbeg =
max(1,pplag%nPcls+1)
422 pplag%aiv(: ,npclsbeg:npclsend) = 0
423 pplag%aivOld(:,npclsbeg:npclsend) = 0
424 pplag%arv(: ,npclsbeg:npclsend) = 0.0_rfreal
425 pplag%arvOld(:,npclsbeg:npclsend) = 0.0_rfreal
426 pplag%cv(: ,npclsbeg:npclsend) = 0.0_rfreal
427 pplag%cvOld(: ,npclsbeg:npclsend) = 0.0_rfreal
428 pplag%rhs(: ,npclsbeg:npclsend) = 0.0_rfreal
429 pplag%rhsSum(:,npclsbeg:npclsend) = 0.0_rfreal
431 #ifdef PLAG_CECELLS_DEBUG
432 WRITE(stdout,
'(A,I4,2I8,2X,L1)') &
433 ' PLAG_CornCellsLoadData: iReg,nPclsBeg,nPclsEnd = ',&
434 ireg,npclsbeg,npclsend
440 DEALLOCATE( corncellcounter,stat=errorflag )
441 global%error = errorflag
442 IF (global%error /= err_none) &
443 CALL
errorstop( global,err_deallocate,__line__ )
**********************************************************************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 ibeg
Tfloat sum() const
Return the sum of all the pixel values in an image.
**********************************************************************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 kpcbeg
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
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 jpcbeg
**********************************************************************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 ipcend
**********************************************************************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 knode iend
**********************************************************************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 ipcbeg
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
**********************************************************************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 icorner
subroutine rflo_getcornercellsindices(region, iLev, icorner, icbeg, icend, jcbeg, jcend, kcbeg, kcend)
**********************************************************************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 jpcend
**********************************************************************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 knode jend
subroutine errorstop(global, errorCode, errorLine, addMessage)
**********************************************************************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 knode jbeg
**********************************************************************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 knode kbeg
subroutine deregisterfunction(global)
subroutine getijk(ijk, iOffset, ijOffset, nDumCells, i, j, k)
subroutine rflo_getdimensphys(region, iLev, ipcbeg, ipcend, jpcbeg, jpcend, kpcbeg, kpcend)
subroutine plag_corncellsloaddata(regions, iReg)