66 TYPE(t_region
),
POINTER :: regions(:)
69 INTEGER :: ireg,
i,
j,
k,
n
72 CHARACTER(2*CHRLEN+17) :: fname
73 CHARACTER(CHRLEN) ::
msg, timestring
76 INTEGER ::
status(mpi_status_size)
78 INTEGER :: ilev, iregfile, ipc, jpc, kpc, ndumcells, ioff, ijoff, ijk
81 INTEGER :: ndimc, ndimn, nrvar, errorflag
82 INTEGER,
ALLOCATABLE :: ivar(:,:)
84 REAL(RFREAL),
POINTER :: cv(:,:), sivel(:), sjvel(:), skvel(:)
85 REAL(RFREAL),
ALLOCATABLE :: rvar(:,:), cvfile(:,:), svelfile(:,:)
91 global => regions(1)%global
94 'RFLO_ReadSolution.F90' )
103 ALLOCATE( ivar(5,1),stat=errorflag )
104 ALLOCATE( rvar(nrvar,1),stat=errorflag )
105 global%error = errorflag
106 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
110 IF (global%flowType == flow_unsteady)
THEN
111 WRITE(timestring,
'(1PE11.5)') global%timeStamp
113 WRITE(timestring,
'(1PE11.5)') 0._rfreal
118 IF (global%myProcid == masterproc)
THEN
122 IF (global%flowType == flow_unsteady)
THEN
123 IF (global%solutFormat == format_ascii)
THEN
124 WRITE(fname,
'(A,1PE11.5)') trim(global%inDir)//trim(global%casename)//
'.sola_', &
126 OPEN(if_solut,file=fname,
form=
'formatted',
status=
'old',iostat=errorflag)
127 ELSE IF (global%solutFormat == format_binary)
THEN
128 WRITE(fname,
'(A,1PE11.5)') trim(global%inDir)//trim(global%casename)//
'.solb_', &
130 OPEN(if_solut,file=fname,
form=
'unformatted',
status=
'old',iostat=errorflag)
132 CALL
errorstop( global,err_unknown_format,__line__ )
138 IF (global%solutFormat == format_ascii)
THEN
139 WRITE(fname,
'(A,I6.6)') trim(global%inDir)//trim(global%casename)//
'.sola_', &
141 OPEN(if_solut,file=fname,
form=
'formatted',
status=
'old',iostat=errorflag)
142 ELSE IF (global%solutFormat == format_binary)
THEN
143 WRITE(fname,
'(A,I6.6)') trim(global%inDir)//trim(global%casename)//
'.solb_', &
145 OPEN(if_solut,file=fname,
form=
'unformatted',
status=
'old',iostat=errorflag)
147 CALL
errorstop( global,err_unknown_format,__line__ )
151 global%error = errorflag
152 IF (global%error /= 0) &
153 CALL
errorstop( global,err_file_open,__line__,
'File: '//trim(fname) )
159 IF (global%myProcid == masterproc)
THEN
164 CALL mpi_bcast( rvar,nrvar,mpi_rfreal,masterproc,global%mpiComm,global%mpierr )
165 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,__line__ )
168 IF (global%flowType==flow_unsteady .AND. global%currentTime>0._rfreal)
THEN
169 IF (global%currentTime /= rvar(1,1))
THEN
170 WRITE(
msg,1000) rvar(1,1),global%currentTime
171 CALL
errorstop( global,err_time_solution,__line__,
msg//
' File: '//trim(fname) )
174 IF (global%timeStamp > 0._rfreal)
THEN
175 global%currentTime = rvar(1,1)
177 global%currentTime = 0._rfreal
180 global%resInit = rvar(2,1)
182 global%moduleVar(1) = rvar(3,1)
187 DO ireg=1,global%nRegions
191 ilev = regions(ireg)%currLevel
197 ndimc = ijkend - ijkbeg + 1
202 ndimn = (regions(ireg)%levels(ilev)%grid%ipc+1)* &
203 (regions(ireg)%levels(ilev)%grid%jpc+1)* &
204 (regions(ireg)%levels(ilev)%grid%kpc+1)
208 IF (global%myProcid == masterproc)
THEN
214 ndumcells = ivar(5,1)
216 IF (iregfile /= ireg) &
217 CALL
errorstop( global,err_region_number,__line__,
'File: '//trim(fname) )
218 IF ((ipc /= regions(ireg)%levels(ilev)%grid%ipc) .OR. &
219 (jpc /= regions(ireg)%levels(ilev)%grid%jpc) .OR. &
220 (kpc /= regions(ireg)%levels(ilev)%grid%kpc))
THEN
221 WRITE(
msg,1005) ireg,ipc,jpc,kpc
222 CALL
errorstop( global,err_grid_dimensions,__line__,
msg )
224 IF (ndumcells /= regions(ireg)%nDumCells)
THEN
225 WRITE(
msg,1010) ireg,ndumcells,regions(ireg)%nDumCells
232 IF (global%myProcid == masterproc)
THEN
234 ALLOCATE( cvfile(cv_mixt_neqs,ndimc),stat=errorflag )
235 global%error = errorflag
236 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
239 cv_mixt_neqs,ndimc,cvfile )
241 IF (regions(ireg)%mixtInput%moveGrid .AND. &
242 trim(timestring)/=
'0.00000E+00')
THEN
243 ALLOCATE( svelfile(3,ndimn),stat=errorflag )
244 global%error = errorflag
245 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
251 IF (regions(ireg)%procid /= masterproc)
THEN
252 CALL mpi_send( cvfile,cv_mixt_neqs*ndimc,mpi_rfreal, &
253 regions(ireg)%procid,ireg, &
254 global%mpiComm,global%mpierr )
255 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,__line__ )
257 IF (regions(ireg)%mixtInput%moveGrid .AND. &
258 trim(timestring)/=
'0.00000E+00')
THEN
259 CALL mpi_send( svelfile,3*ndimn,mpi_rfreal, &
260 regions(ireg)%procid,ireg, &
261 global%mpiComm,global%mpierr )
262 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,__line__ )
269 IF (regions(ireg)%procid == global%myProcid)
THEN
270 ALLOCATE( cvfile(cv_mixt_neqs,ndimc),stat=errorflag )
271 global%error = errorflag
272 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
274 IF (regions(ireg)%mixtInput%moveGrid .AND. &
275 trim(timestring)/=
'0.00000E+00')
THEN
276 ALLOCATE( svelfile(3,ndimn),stat=errorflag )
277 global%error = errorflag
278 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
281 CALL mpi_recv( cvfile,cv_mixt_neqs*ndimc,mpi_rfreal,masterproc,ireg, &
282 global%mpiComm,
status,global%mpierr )
283 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,__line__ )
285 IF (regions(ireg)%mixtInput%moveGrid .AND. &
286 trim(timestring)/=
'0.00000E+00')
THEN
287 CALL mpi_recv( svelfile,3*ndimn,mpi_rfreal,masterproc,ireg, &
288 global%mpiComm,
status,global%mpierr )
289 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,__line__ )
298 IF (regions(ireg)%procid == global%myProcid)
THEN
299 cv => regions(ireg)%levels(ilev)%mixt%cv
305 ijk = indijk(
i,
j,
k,ioff,ijoff)
306 cv(cv_mixt_dens,ijk) = cvfile(1,
n)
307 cv(cv_mixt_xmom,ijk) = cvfile(2,
n)
308 cv(cv_mixt_ymom,ijk) = cvfile(3,
n)
309 cv(cv_mixt_zmom,ijk) = cvfile(4,
n)
310 cv(cv_mixt_ener,ijk) = cvfile(5,
n)
317 IF (regions(ireg)%mixtInput%moveGrid .AND. &
318 trim(timestring)/=
'0.00000E+00')
THEN
319 sivel => regions(ireg)%levels(ilev)%grid%siVel
320 sjvel => regions(ireg)%levels(ilev)%grid%sjVel
321 skvel => regions(ireg)%levels(ilev)%grid%skVel
327 ijk = indijk(
i,
j,
k,inoff,ijnoff)
328 sivel(ijk) = svelfile(1,
n)
329 sjvel(ijk) = svelfile(2,
n)
330 skvel(ijk) = svelfile(3,
n)
337 IF (
ALLOCATED(cvfile))
THEN
338 DEALLOCATE( cvfile,stat=errorflag )
339 global%error = errorflag
340 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,__line__ )
342 IF (
ALLOCATED(svelfile))
THEN
343 DEALLOCATE( svelfile,stat=errorflag )
344 global%error = errorflag
345 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,__line__ )
352 IF (global%myProcid == masterproc)
THEN
353 CLOSE(if_solut,iostat=errorflag)
354 global%error = errorflag
355 IF (global%error /= 0) &
356 CALL
errorstop( global,err_file_close,__line__,
'File: '//trim(fname) )
361 1000
FORMAT(
'Time in file is= ',1pe12.5,
' but it should be= ',e12.5,
'.')
362 1005
FORMAT(
'Region ',i5,
', ipc= ',i6,
', jpc= ',i6,
', kpc= ',i6,
'.')
363 1010
FORMAT(
'Region ',i5,
', # dummy cells=',i2,
' but should be= ',i1)
**********************************************************************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 idcend
**********************************************************************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 jpnbeg
**********************************************************************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 kpnbeg
subroutine registerfunction(global, funName, fileName)
int status() const
Obtain the status of the attribute.
subroutine rflo_readdatafileint(global, fileId, form, nDim1, nDim2, ivar)
**********************************************************************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 jpnend
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
subroutine rflo_getdimensdummy(region, iLev, idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend)
subroutine rflo_readsolution(regions)
**********************************************************************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 kdcbeg
**********************************************************************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 ipnbeg
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 idcbeg
**********************************************************************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 form
**********************************************************************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 jdcend
subroutine rflo_getdimensphysnodes(region, iLev, ipnbeg, ipnend, jpnbeg, jpnend, kpnbeg, kpnend)
**********************************************************************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 jdcbeg
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)
**********************************************************************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 ipnend
subroutine rflo_readdatafilereal(global, fileId, form, nDim1, nDim2, var)