66 TYPE(t_region
),
POINTER :: regions(:)
69 INTEGER :: ireg,
i,
j,
k, l,
n
74 CHARACTER(2*CHRLEN+17) :: fname
77 INTEGER ::
status(mpi_status_size)
79 INTEGER :: ilev, iregfile, ipc, jpc, kpc, ndumcells
80 INTEGER :: icoff, ijcoff, ijkc, inoff, ijnoff, ijkn, ijkni, ijknj, ijknk
82 INTEGER :: nang, ndimc, nrvar, nsolcomp, errorflag
83 INTEGER,
ALLOCATABLE :: ivar(:,:)
85 REAL(RFREAL),
POINTER :: radint(:,:), radcoef(:,:), qri(:),qrj(:),qrk(:)
86 REAL(RFREAL),
POINTER :: rcv(:,:)
87 REAL(RFREAL),
ALLOCATABLE :: rvar(:,:), solfile(:,:)
91 global => regions(1)%global
94 'RADI_rFLO_WriteSolution.F90' )
100 ALLOCATE( ivar(5,1),stat=errorflag )
101 ALLOCATE( rvar(nrvar,1),stat=errorflag )
102 global%error = errorflag
103 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
107 IF (global%myProcid == masterproc)
THEN
111 IF (global%flowType == flow_unsteady)
THEN
112 IF (global%solutFormat == format_ascii)
THEN
113 WRITE(fname,
'(A,1PE11.5)') trim(global%outDir)//trim(global%casename)//
'.rada_', &
115 OPEN(if_solut,file=fname,
form=
'formatted',
status=
'unknown', &
117 ELSE IF (global%solutFormat == format_binary)
THEN
118 WRITE(fname,
'(A,1PE11.5)') trim(global%outDir)//trim(global%casename)//
'.radb_', &
120 OPEN(if_solut,file=fname,
form=
'unformatted',
status=
'unknown', &
123 CALL
errorstop( global,err_unknown_format,__line__ )
125 rvar(1,1) = global%currentTime
126 rvar(2,1) = 1._rfreal
131 IF (global%solutFormat == format_ascii)
THEN
132 WRITE(fname,
'(A,I6.6)') trim(global%outDir)//trim(global%casename)//
'.rada_', &
134 OPEN(if_solut,file=fname,
form=
'formatted',
status=
'unknown', &
136 ELSE IF (global%solutFormat == format_binary)
THEN
137 WRITE(fname,
'(A,I6.6)') trim(global%outDir)//trim(global%casename)//
'.radb_', &
139 OPEN(if_solut,file=fname,
form=
'unformatted',
status=
'unknown', &
142 CALL
errorstop( global,err_unknown_format,__line__ )
144 rvar(1,1) = 0._rfreal
145 rvar(2,1) = global%resInit
148 global%error = errorflag
149 IF (global%error /= 0) &
150 CALL
errorstop( global,err_file_open,__line__,
'File: '//trim(fname) )
156 IF (global%myProcid == masterproc)
THEN
162 DO ireg=1,global%nRegions
166 ilev = regions(ireg)%currLevel
173 ndimc = ijkend - ijkbeg + 1
177 nang = regions(ireg)%radiInput%nAng
178 nsolcomp = 3+radi_coeff_ncomp+nang
180 IF (regions(ireg)%radiInput%radiModel == radi_model_fldtran)
THEN
181 nsolcomp = nsolcomp+1
184 IF (regions(ireg)%procid==global%myProcid .OR. &
185 global%myProcid==masterproc)
THEN
186 ALLOCATE( solfile(nsolcomp,ndimc),stat=errorflag )
187 global%error = errorflag
188 IF (global%error /= 0) CALL
errorstop( global,err_allocate,__line__ )
193 IF (regions(ireg)%procid == global%myProcid)
THEN
194 IF (regions(ireg)%mixtInput%radiUsed)
THEN
195 qri => regions(ireg)%levels(ilev)%radi%qri
196 qrj => regions(ireg)%levels(ilev)%radi%qrj
197 qrk => regions(ireg)%levels(ilev)%radi%qrk
198 radint => regions(ireg)%levels(ilev)%radi%radInt
199 radcoef => regions(ireg)%levels(ilev)%radi%radCoef
201 IF (regions(ireg)%radiInput%radiModel /= radi_model_fldtran)
THEN
206 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
207 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
208 ijkni= indijk(
i+1,
j,
k,inoff,ijnoff)
209 ijknj= indijk(
i,
j+1,
k,inoff,ijnoff)
210 ijknk= indijk(
i,
j,
k+1,inoff,ijnoff)
211 solfile(1,
n) = 0.5_rfreal*(qri(ijkn)+qri(ijkni))
212 solfile(2,
n) = 0.5_rfreal*(qrj(ijkn)+qrj(ijknj))
213 solfile(3,
n) = 0.5_rfreal*(qrk(ijkn)+qrk(ijknk))
214 solfile(4,
n) = radcoef(ijkc,radi_coeff_extinct)
215 solfile(5,
n) = radcoef(ijkc,radi_coeff_scatter)
217 solfile(5+l,
n) = radint(l,ijkc)
223 rcv => regions(ireg)%levels(ilev)%radi%cv
229 ijkc = indijk(
i,
j,
k,icoff,ijcoff)
230 ijkn = indijk(
i,
j,
k,inoff,ijnoff)
231 ijkni= indijk(
i+1,
j,
k,inoff,ijnoff)
232 ijknj= indijk(
i,
j+1,
k,inoff,ijnoff)
233 ijknk= indijk(
i,
j,
k+1,inoff,ijnoff)
234 solfile(1,
n) = rcv(cv_radi_ener,ijkc)
235 solfile(2,
n) = 0.5_rfreal*(qri(ijkn)+qri(ijkni))
236 solfile(3,
n) = 0.5_rfreal*(qrj(ijkn)+qrj(ijknj))
237 solfile(4,
n) = 0.5_rfreal*(qrk(ijkn)+qrk(ijknk))
238 solfile(5,
n) = radcoef(ijkc,radi_coeff_extinct)
239 solfile(6,
n) = radcoef(ijkc,radi_coeff_scatter)
241 solfile(6+l,
n) = radint(l,ijkc)
254 IF (global%myProcid == masterproc)
THEN
256 ivar(2,1) = regions(ireg)%levels(ilev)%grid%ipc
257 ivar(3,1) = regions(ireg)%levels(ilev)%grid%jpc
258 ivar(4,1) = regions(ireg)%levels(ilev)%grid%kpc
259 ivar(5,1) = regions(ireg)%nDumCells
265 IF (global%myProcid == masterproc)
THEN
267 IF (regions(ireg)%procid /= masterproc)
THEN
268 CALL mpi_recv( solfile, nsolcomp*ndimc,mpi_rfreal, &
269 regions(ireg)%procid,ireg, &
270 global%mpiComm,
status,global%mpierr )
271 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,__line__ )
275 nsolcomp,ndimc,solfile )
278 IF (regions(ireg)%procid == global%myProcid)
THEN
279 CALL mpi_send( solfile,nsolcomp*ndimc,mpi_rfreal, &
280 masterproc,ireg,global%mpiComm,global%mpierr )
281 IF (global%mpierr /=0 ) CALL
errorstop( global,err_mpi_trouble,__line__ )
286 IF (
ALLOCATED(solfile))
THEN
287 DEALLOCATE( solfile,stat=errorflag )
288 global%error = errorflag
289 IF (global%error /= 0) CALL
errorstop( global,err_deallocate,__line__ )
296 IF (global%myProcid == masterproc)
THEN
297 CLOSE(if_solut,iostat=errorflag)
298 global%error = errorflag
299 IF (global%error /= 0) &
300 CALL
errorstop( global,err_file_close,__line__,
'File: '//trim(fname) )
**********************************************************************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
subroutine rflo_writedatafileint(global, fileId, form, nDim1, nDim2, ivar)
subroutine registerfunction(global, funName, fileName)
int status() const
Obtain the status of the attribute.
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
subroutine rflo_getdimensdummy(region, iLev, idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend)
**********************************************************************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
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
subroutine radi_rflo_writesolution(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 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
**********************************************************************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 rflo_writedatafilereal(global, fileId, form, nDim1, nDim2, var)
subroutine deregisterfunction(global)