61 TYPE(t_region
) :: region, regionsrc
65 INTEGER :: idum,
i,
j,
k, ijkbuff
68 INTEGER :: ilev,
ibeg,
iend,
jbeg,
jend,
kbeg, kend, icoff, ijcoff, ijkc, &
69 n1, n2, ndim, dest,
tag
70 INTEGER :: lb, l1srcdir, l2srcdir, l1beg, l1end, l1step, l2beg, l2end, l2step
74 REAL(RFREAL),
POINTER :: cv(:,:)
80 global => region%global
83 'RFLO_SendDummyConf.F90' )
87 IF (regionsrc%active == off)
THEN
88 CALL
errorstop( global,err_srcregion_off,__line__ )
93 ilev = region%currLevel
99 cv => region%levels(ilev)%mixt%cv
103 ndim = n1*n2*regionsrc%nDumCells
108 IF (
patch%srcL1beg >
patch%srcL1end) l1srcdir = -1
110 IF (
patch%srcL2beg >
patch%srcL2end) l2srcdir = -1
119 DO idum=0,regionsrc%nDumCells-1
123 IF (lb==1 .OR. lb==2)
THEN
125 IF (lb == 1)
i =
ibeg + idum
126 IF (lb == 2)
i =
iend - idum
128 IF (l1srcdir > 0)
THEN
136 IF (l2srcdir > 0)
THEN
144 DO k=l2beg,l2end,l2step
145 DO j=l1beg,l1end,l1step
146 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
147 ijkbuff = ijkbuff + 1
148 patch%mixt%sendBuff(ijkbuff ) = cv(cv_mixt_dens,ijkc)
149 patch%mixt%sendBuff(ijkbuff+ ndim) = cv(cv_mixt_xmom,ijkc)
150 patch%mixt%sendBuff(ijkbuff+2*ndim) = cv(cv_mixt_ymom,ijkc)
151 patch%mixt%sendBuff(ijkbuff+3*ndim) = cv(cv_mixt_zmom,ijkc)
152 patch%mixt%sendBuff(ijkbuff+4*ndim) = cv(cv_mixt_ener,ijkc)
156 IF (l1srcdir > 0)
THEN
164 IF (l2srcdir > 0)
THEN
172 DO j=l2beg,l2end,l2step
173 DO k=l1beg,l1end,l1step
174 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
175 ijkbuff = ijkbuff + 1
176 patch%mixt%sendBuff(ijkbuff ) = cv(cv_mixt_dens,ijkc)
177 patch%mixt%sendBuff(ijkbuff+ ndim) = cv(cv_mixt_xmom,ijkc)
178 patch%mixt%sendBuff(ijkbuff+2*ndim) = cv(cv_mixt_ymom,ijkc)
179 patch%mixt%sendBuff(ijkbuff+3*ndim) = cv(cv_mixt_zmom,ijkc)
180 patch%mixt%sendBuff(ijkbuff+4*ndim) = cv(cv_mixt_ener,ijkc)
187 ELSE IF (lb==3 .OR. lb==4)
THEN
189 IF (lb == 3)
j =
jbeg + idum
190 IF (lb == 4)
j =
jend - idum
192 IF (l1srcdir > 0)
THEN
200 IF (l2srcdir > 0)
THEN
208 DO i=l2beg,l2end,l2step
209 DO k=l1beg,l1end,l1step
210 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
211 ijkbuff = ijkbuff + 1
212 patch%mixt%sendBuff(ijkbuff ) = cv(cv_mixt_dens,ijkc)
213 patch%mixt%sendBuff(ijkbuff+ ndim) = cv(cv_mixt_xmom,ijkc)
214 patch%mixt%sendBuff(ijkbuff+2*ndim) = cv(cv_mixt_ymom,ijkc)
215 patch%mixt%sendBuff(ijkbuff+3*ndim) = cv(cv_mixt_zmom,ijkc)
216 patch%mixt%sendBuff(ijkbuff+4*ndim) = cv(cv_mixt_ener,ijkc)
220 IF (l1srcdir > 0)
THEN
228 IF (l2srcdir > 0)
THEN
236 DO k=l2beg,l2end,l2step
237 DO i=l1beg,l1end,l1step
238 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
239 ijkbuff = ijkbuff + 1
240 patch%mixt%sendBuff(ijkbuff ) = cv(cv_mixt_dens,ijkc)
241 patch%mixt%sendBuff(ijkbuff+ ndim) = cv(cv_mixt_xmom,ijkc)
242 patch%mixt%sendBuff(ijkbuff+2*ndim) = cv(cv_mixt_ymom,ijkc)
243 patch%mixt%sendBuff(ijkbuff+3*ndim) = cv(cv_mixt_zmom,ijkc)
244 patch%mixt%sendBuff(ijkbuff+4*ndim) = cv(cv_mixt_ener,ijkc)
251 ELSE IF (lb==5 .OR. lb==6)
THEN
253 IF (lb == 5)
k =
kbeg + idum
254 IF (lb == 6)
k = kend - idum
256 IF (l1srcdir > 0)
THEN
264 IF (l2srcdir > 0)
THEN
272 DO j=l2beg,l2end,l2step
273 DO i=l1beg,l1end,l1step
274 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
275 ijkbuff = ijkbuff + 1
276 patch%mixt%sendBuff(ijkbuff ) = cv(cv_mixt_dens,ijkc)
277 patch%mixt%sendBuff(ijkbuff+ ndim) = cv(cv_mixt_xmom,ijkc)
278 patch%mixt%sendBuff(ijkbuff+2*ndim) = cv(cv_mixt_ymom,ijkc)
279 patch%mixt%sendBuff(ijkbuff+3*ndim) = cv(cv_mixt_zmom,ijkc)
280 patch%mixt%sendBuff(ijkbuff+4*ndim) = cv(cv_mixt_ener,ijkc)
284 IF (l1srcdir > 0)
THEN
292 IF (l2srcdir > 0)
THEN
300 DO i=l2beg,l2end,l2step
301 DO j=l1beg,l1end,l1step
302 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
303 ijkbuff = ijkbuff + 1
304 patch%mixt%sendBuff(ijkbuff ) = cv(cv_mixt_dens,ijkc)
305 patch%mixt%sendBuff(ijkbuff+ ndim) = cv(cv_mixt_xmom,ijkc)
306 patch%mixt%sendBuff(ijkbuff+2*ndim) = cv(cv_mixt_ymom,ijkc)
307 patch%mixt%sendBuff(ijkbuff+3*ndim) = cv(cv_mixt_zmom,ijkc)
308 patch%mixt%sendBuff(ijkbuff+4*ndim) = cv(cv_mixt_ener,ijkc)
320 dest = regionsrc%procid
321 tag = regionsrc%localNumber + mpi_patchoff*
patch%srcPatch
322 CALL mpi_isend(
patch%mixt%sendBuff,cv_mixt_neqs*ndim,mpi_rfreal, &
323 dest,
tag,global%mpiComm, &
324 global%requests(
patch%mixt%iRequest),global%mpierr )
325 IF (global%mpierr /= 0) CALL
errorstop( global,err_mpi_trouble,__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
subroutine registerfunction(global, funName, fileName)
subroutine rflo_getpatchindices(region, patch, iLev, ibeg, iend, jbeg, jend, kbeg, kend)
**********************************************************************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
subroutine rflo_getcelloffset(region, iLev, iCellOffset, ijCellOffset)
subroutine rflo_senddummyconf(region, regionSrc, patch)
**********************************************************************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)