65 TYPE(t_region
) :: region
71 CHARACTER(CHRLEN) :: errorstring,rcsidentstring
72 INTEGER :: ifl,ipatch,bocount,botot
73 REAL(RFREAL),
DIMENSION(:,:),
POINTER :: pvals
75 TYPE(t_patch),
POINTER :: ppatch
81 rcsidentstring =
'$RCSfile: RFLU_GetBoundaryValues.F90,v $ $Revision: 1.18 $'
83 global => region%global
86 'RFLU_GetBoundaryValues.F90')
93 IF ( global%myProcid == masterproc .AND. &
94 global%verbLevel >= verbose_high )
THEN
95 WRITE(stdout,
'(A,1X,A,1X,I3)') solver_name, &
96 'Getting values from GENX buffers...'
100 DO ipatch=1,region%grid%nPatches
101 ppatch => region%patches(ipatch)
103 IF ( global%myProcid == masterproc .AND. &
104 global%checkLevel == check_high .AND. &
105 global%verbLevel >= verbose_high )
THEN
106 IF ( ppatch%bcCoupled == bc_not_coupled )
THEN
107 WRITE(stdout,
'(A,3X,A,1X,I3,1X,A)') solver_name,
'Patch:',ipatch, &
109 ELSE IF ( ppatch%bcCoupled == bc_not_burning )
THEN
110 WRITE(stdout,
'(A,3X,A,1X,I3,1X,A)') solver_name,
'Patch:',ipatch, &
112 ELSE IF ( ppatch%bcCoupled == bc_burning )
THEN
113 WRITE(stdout,
'(A,3X,A,1X,I3,1X,A)') solver_name,
'Patch:',ipatch, &
114 '(interacting and burning)'
122 IF ( ppatch%bcCoupled == bc_burning )
THEN
123 pvals => ppatch%mixt%vals
124 DO ifl = 1,ppatch%nBFaces
133 IF(ppatch%bflag(ifl) .ne. 0)
THEN
134 pvals(bcdat_inject_mfrate,ifl) = ppatch%mdotAlp(ifl)
136 bocount = bocount + 1
137 pvals(bcdat_inject_mfrate,ifl) = 0.0
138 ppatch%mdotAlp(ifl) = 0.0
140 pvals(bcdat_inject_temp ,ifl) = ppatch%tflmAlp(ifl)
143 DO ifl = ppatch%nBFaces+1,ppatch%nBFacesTot
144 pvals(bcdat_inject_mfrate,ifl) =
REAL(crazy_value_int,kind=rfreal)
145 pvals(bcdat_inject_temp ,ifl) =
REAL(crazy_value_int,kind=rfreal)
148 IF ( global%myProcid == masterproc .AND. &
149 global%checkLevel == check_high .AND. &
150 global%verbLevel >= verbose_high )
THEN
151 IF ( ppatch%nBFaces > 0 )
THEN
152 WRITE(stdout,
'(A,5X,A)') solver_name,
'Minimum/maximum values:'
153 WRITE(stdout,
'(A,7X,A,2(1X,E15.8))') solver_name,
'mdotAlp: ', &
154 minval(ppatch%mdotAlp(1:ppatch%nBFaces)), &
155 maxval(ppatch%mdotAlp(1:ppatch%nBFaces))
156 WRITE(stdout,
'(A,7X,A,2(1X,E15.8))') solver_name,
'TflmAlp: ', &
157 minval(ppatch%tflmAlp(1:ppatch%nBFaces)), &
158 maxval(ppatch%tflmAlp(1:ppatch%nBFaces))
162 IF ( minval(ppatch%mdotAlp(1:ppatch%nBFaces)) < 0.0_rfreal )
THEN
163 WRITE(errorstring,*)
'Patch:',ppatch%iPatchGlobal
164 CALL
errorstop(global,err_mdot_negative,__line__,trim(errorstring))
167 IF ( minval(ppatch%tflmAlp(1:ppatch%nBFaces)) < 0.0_rfreal )
THEN
168 WRITE(errorstring,*)
'Patch:',ppatch%iPatchGlobal
169 CALL
errorstop(global,err_tflm_negative,__line__,trim(errorstring))
177 ELSE IF ( ppatch%bcCoupled == bc_not_burning )
THEN
178 IF ( ppatch%bcType == bc_noslipwall_temp )
THEN
179 pvals => ppatch%mixt%vals
181 DO ifl = 1,ppatch%nBFaces
182 pvals(bcdat_noslip_t,ifl) = ppatch%tbAlp(ifl)
185 DO ifl = ppatch%nBFaces+1,ppatch%nBFacesTot
186 pvals(bcdat_noslip_t,ifl) =
REAL(crazy_value_int,kind=rfreal)
189 IF ( global%myProcid == masterproc .AND. &
190 global%checkLevel == check_high .AND. &
191 global%verbLevel >= verbose_high )
THEN
192 IF ( ppatch%nBFaces > 0 )
THEN
193 WRITE(stdout,
'(A,5X,A)') solver_name,
'Minimum/maximum values:'
194 WRITE(stdout,
'(A,7X,A,2(1X,E15.8))') solver_name,
'TbAlp: ', &
195 minval(ppatch%tbAlp(1:ppatch%nBFaces)), &
196 maxval(ppatch%tbAlp(1:ppatch%nBFaces))
200 IF ( minval(ppatch%tbAlp(1:ppatch%nBFaces)) < 0.0_rfreal )
THEN
201 WRITE(errorstring,*)
'Patch:',ppatch%iPatchGlobal
202 CALL
errorstop(global,err_tb_negative,__line__,trim(errorstring))
210 ELSE IF ( ppatch%bcCoupled == bc_not_coupled )
THEN
217 CALL
errorstop(global,err_reached_default,__line__)
225 IF ( global%checkLevel == check_high .AND. bocount > 0)
THEN
226 WRITE(stdout,
'(A,3X,A,1X,I9,1X,I9)') solver_name, &
227 'Local burned out faces:',bocount,global%myProcid
230 IF ( global%myProcid == masterproc .AND. &
231 global%verbLevel >= verbose_high )
THEN
232 WRITE(stdout,
'(A,1X,A,1X,I3)') solver_name, &
233 'Getting values from GENX buffers done.'
subroutine registerfunction(global, funName, fileName)
subroutine rflu_getboundaryvalues(region)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)