Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RADI_AllocateMemory.F90
Go to the documentation of this file.
1 ! *********************************************************************
2 ! * Rocstar Simulation Suite *
3 ! * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4 ! * *
5 ! * Illinois Rocstar LLC *
6 ! * Champaign, IL *
7 ! * www.illinoisrocstar.com *
8 ! * sales@illinoisrocstar.com *
9 ! * *
10 ! * License: See LICENSE file in top level of distribution package or *
11 ! * http://opensource.org/licenses/NCSA *
12 ! *********************************************************************
13 ! *********************************************************************
14 ! * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15 ! * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16 ! * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17 ! * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18 ! * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19 ! * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20 ! * Arising FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21 ! * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22 ! *********************************************************************
23 !******************************************************************************
24 !
25 ! Purpose: Allocate memory for all variables associated with rocrad
26 ! for all active regions on current processor.
27 !
28 ! Description: none.
29 !
30 ! Input: region = info of current region data
31 !
32 ! Output: region%radi = info of current rocrad data
33 !
34 ! Notes: none
35 !
36 !******************************************************************************
37 !
38 ! $Id: RADI_AllocateMemory.F90,v 1.4 2008/12/06 08:44:37 mtcampbe Exp $
39 !
40 ! Copyright: (c) 2001 by the University of Illinois
41 !
42 !******************************************************************************
43 
44 SUBROUTINE radi_allocatememory( region )
45 
46  USE moddatatypes
47  USE moddatastruct, ONLY : t_region
48  USE modglobal, ONLY : t_global
51  USE modradiation, ONLY : t_radi
52  USE moderror
53  USE modparameters
55  IMPLICIT NONE
56 
57 #include "Indexing.h"
58 
59 ! ... parameters
60  TYPE(t_region), TARGET :: region
61 
62 ! ... loop variables
63  INTEGER :: ilev
64 
65 ! ... local variables
66  TYPE(t_global), POINTER :: global
67  TYPE(t_radi), POINTER :: radi
68 
69  INTEGER :: idcbeg, idcend, jdcbeg, jdcend, kdcbeg, kdcend
70  INTEGER :: idnbeg, idnend, jdnbeg, jdnend, kdnbeg, kdnend
71  INTEGER :: ibc,iec, ibn,ien, icoff,ijcoff, inoff,ijnoff, errfl
72  INTEGER :: radimodel, media, fluxlim, solmethod
73  INTEGER :: nordin, npol, nazi, nang, ncv, ndv, ngrad
74 
75 !******************************************************************************
76 
77  global => region%global
78  CALL registerfunction( global,'RADI_AllocateMemory',&
79  'RADI_AllocateMemory.F90' )
80 
81 #ifdef RFLO
82 
83 ! get variables ---------------------------------------------------
84 
85  radimodel = region%radiInput%radiModel
86  media = region%radiInput%media
87  fluxlim = region%radiInput%fluxLim
88  solmethod = region%radiInput%solMethod
89  nordin = region%radiInput%nOrdin
90  npol = region%radiInput%nPol
91  nazi = region%radiInput%nAzi
92  nang = region%radiInput%nAng
93 
94  ncv = region%radiInput%nCv
95  ndv = region%radiInput%nDv
96  ngrad = region%radiInput%nGrad
97 
98 ! loop over all grid levels
99 
100  DO ilev=1,region%nGridLevels
101 
102  radi => region%levels(ilev)%radi
103 
104 ! - get cell and node dimensions ----------------------------------
105 
106  CALL rflo_getdimensdummy( region,ilev,idcbeg,idcend, &
107  jdcbeg,jdcend,kdcbeg,kdcend )
108  CALL rflo_getcelloffset( region,ilev,icoff,ijcoff )
109  ibc = indijk(idcbeg,jdcbeg,kdcbeg,icoff,ijcoff)
110  iec = indijk(idcend,jdcend,kdcend,icoff,ijcoff)
111 
112  CALL rflo_getdimensdummynodes( region,ilev,idnbeg,idnend, &
113  jdnbeg,jdnend,kdnbeg,kdnend )
114  CALL rflo_getnodeoffset( region,ilev,inoff,ijnoff )
115  ibn = indijk(idnbeg,jdnbeg,kdnbeg,inoff,ijnoff)
116  ien = indijk(idnend,jdnend,kdnend,inoff,ijnoff)
117 #endif
118 #ifdef RFLU
119 ! - get variables -----------------------------------------------------
120 
121  radimodel = radiinput%radiModel
122  media = radiinput%media
123  fluxlim = radiinput%fluxLim
124  solmethod = radiinput%solMethod
125  nordin = radiinput%nOrdin
126  npol = radiinput%nPol
127  nazi = radiinput%nAzi
128  nang = radiinput%nAng
129 
130  ncv = radiinput%nCv
131  ndv = radiinput%nDv
132  ngrad = radiinput%nGrad
133 
134  ALLOCATE( radiinput%angles(nang,radi_angle_ncomp),stat=errfl )
135  IF (errfl>0) goto 88
136 
137 ! - get cell and node dimensions --------------------------------------
138  ibc =
139  iec =
140  ibn =
141  ien =
142 #endif
143 
144 ! - general radiation variables
145 
146  ALLOCATE( radi%qri(ibn:ien) ,stat=errfl ); IF (errfl>0) goto 88
147  ALLOCATE( radi%qrj(ibn:ien) ,stat=errfl ); IF (errfl>0) goto 88
148  ALLOCATE( radi%qrk(ibn:ien) ,stat=errfl ); IF (errfl>0) goto 88
149  ALLOCATE( radi%goFact(ibc:iec) ,stat=errfl ); IF (errfl>0) goto 88
150 
151  ALLOCATE( radi%wvInt(xcoord:zcoord,ibc:iec),stat=errfl )
152  IF (errfl>0) goto 88
153  ALLOCATE( radi%radInt(nang ,ibc:iec),stat=errfl )
154  IF (errfl>0) goto 88
155  ALLOCATE( radi%radCoef(ibc:iec,radi_coeff_ncomp),stat=errfl )
156  IF (errfl>0) goto 88
157 
158  IF (ncv > 0) THEN
159  ALLOCATE( radi%cv( ncv,ibc:iec),stat=errfl ); IF (errfl>0) goto 88
160  ALLOCATE( radi%cvOld( ncv,ibc:iec),stat=errfl ); IF (errfl>0) goto 88
161  ALLOCATE( radi%rhs( ncv,ibc:iec),stat=errfl ); IF (errfl>0) goto 88
162  ALLOCATE( radi%rhsSum(ncv,ibc:iec),stat=errfl ); IF (errfl>0) goto 88
163  ALLOCATE( radi%diss( ncv,ibc:iec),stat=errfl ); IF (errfl>0) goto 88
164  ELSE
165  nullify( radi%cv,radi%cvOld,radi%rhs,radi%rhsSum,radi%diss )
166  ENDIF
167 
168 #ifdef RFLO
169  IF (ncv > 0) THEN
170  ALLOCATE( radi%srad(icoord:kcoord,ibc:iec),stat=errfl )
171  IF (errfl>0) goto 88
172  IF ((global%flowType==flow_steady) .AND. &
173  (region%radiInput%smoocf > 0._rfreal)) THEN
174  ALLOCATE( radi%epsIrs(icoord:kcoord,ibc:iec), stat=errfl )
175  IF (errfl>0) goto 88
176  ELSE
177  nullify( radi%epsIrs )
178  ENDIF
179  ELSE
180  nullify( radi%srad,radi%epsIrs )
181  ENDIF
182 #endif
183 
184  IF (ndv > 0) THEN
185  ALLOCATE( radi%dv(ndv,ibc:iec),stat=errfl ); IF (errfl>0) goto 88
186  ELSE
187  nullify( radi%dv )
188  ENDIF
189 
190  IF (ngrad > 0) THEN
191  ALLOCATE( radi%gradi(ngrad,ibn:ien),stat=errfl ); IF (errfl>0) goto 88
192  ALLOCATE( radi%gradj(ngrad,ibn:ien),stat=errfl ); IF (errfl>0) goto 88
193  ALLOCATE( radi%gradk(ngrad,ibn:ien),stat=errfl ); IF (errfl>0) goto 88
194  ELSE
195  nullify( radi%gradi,radi%gradj,radi%gradk )
196  ENDIF
197 
198  IF (radimodel == radi_model_ross .OR. &
199  radimodel == radi_model_fldsrc .OR. &
200  radimodel == radi_model_fldtran) THEN
201  ALLOCATE( radi%fluxLim(ibc:iec),stat=errfl ); IF (errfl>0) goto 88
202  ELSE
203  nullify( radi%fluxLim )
204  ENDIF
205 
206  IF (radimodel == radi_model_fldtran) THEN
207  ALLOCATE( radi%ptens(tensor_symm_nelm,ibc:iec),stat=errfl )
208  IF (errfl>0) goto 88
209  ALLOCATE( radi%eddFact(ibc:iec),stat=errfl )
210  IF (errfl>0) goto 88
211  ELSE
212  nullify( radi%cv,radi%ptens,radi%eddFact )
213  ENDIF
214 
215  IF (radimodel == radi_model_rtegray .OR. &
216  radimodel == radi_model_rteband) THEN
217  ALLOCATE( radi%dWghti(nang,ibn:ien),stat=errfl ); IF (errfl>0) goto 88
218  ALLOCATE( radi%dWghtj(nang,ibn:ien),stat=errfl ); IF (errfl>0) goto 88
219  ALLOCATE( radi%dWghtk(nang,ibn:ien),stat=errfl ); IF (errfl>0) goto 88
220  ELSE
221  nullify( radi%dWghti, radi%dWghtj, radi%dWghtk )
222  ENDIF
223 
224 #ifdef RFLO
225  ENDDO !iLev
226 #endif
227 
228  goto 999
229 
230 ! finalize ----------------------------------------------------------
231 
232 88 CONTINUE
233 
234  global%error = errfl
235  CALL errorstop( global,err_allocate,__line__ )
236 
237 999 CONTINUE
238 
239  CALL deregisterfunction( global )
240 
241 END SUBROUTINE radi_allocatememory
242 
243 !******************************************************************************
244 !
245 ! RCS Revision history:
246 !
247 ! $Log: RADI_AllocateMemory.F90,v $
248 ! Revision 1.4 2008/12/06 08:44:37 mtcampbe
249 ! Updated license.
250 !
251 ! Revision 1.3 2008/11/19 22:17:49 mtcampbe
252 ! Added Illinois Open Source License/Copyright
253 !
254 ! Revision 1.2 2004/09/30 17:09:58 wasistho
255 ! prepared for full FLD radiation model
256 !
257 ! Revision 1.1 2004/09/22 02:35:49 wasistho
258 ! changed file nomenclature from lower to upper case
259 !
260 ! Revision 1.6 2004/09/22 01:31:13 wasistho
261 ! switch LFD to FLD for flux limited diffusion
262 !
263 ! Revision 1.5 2004/09/18 17:41:11 wasistho
264 ! install Limited Flux Diffusion radiation
265 !
266 ! Revision 1.4 2003/08/29 01:39:49 wasistho
267 ! Added TARGET attribute to region variable, since pointers are cached into it
268 !
269 ! Revision 1.3 2003/07/31 02:54:01 wasistho
270 ! enter part and smoke data into radiation
271 !
272 ! Revision 1.2 2003/07/18 01:38:41 wasistho
273 ! removed bcModel from input data structure
274 !
275 ! Revision 1.1 2003/07/17 01:16:59 wasistho
276 ! initial activation rocrad
277 !
278 !
279 !
280 !******************************************************************************
281 
282 
283 
284 
285 
286 
287 
288 
289 
290 
291 
292 
**********************************************************************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 registerfunction(global, funName, fileName)
Definition: ModError.F90:449
**********************************************************************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 jdnbeg
**********************************************************************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 idnend
subroutine rflo_getnodeoffset(region, iLev, iNodeOffset, ijNodeOffset)
**********************************************************************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 jdnend
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 idnbeg
**********************************************************************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
**********************************************************************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 rflo_getdimensdummynodes(region, iLev, idnbeg, idnend, jdnbeg, jdnend, kdnbeg, kdnend)
subroutine errorstop(global, errorCode, errorLine, addMessage)
Definition: ModError.F90:483
subroutine radi_allocatememory(region)
subroutine deregisterfunction(global)
Definition: ModError.F90:469
**********************************************************************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 kdnbeg