55 TYPE(t_region
),
POINTER :: regions(:)
58 INTEGER :: ireg, ilev, iptype
61 CHARACTER(CHRLEN) :: rcsidentstring
66 TYPE(t_peul),
POINTER :: peul
70 rcsidentstring =
'$RCSfile: PEUL_DerivedInputValues.F90,v $ $Revision: 1.3 $'
72 global => regions(1)%global
75 'PEUL_DerivedInputValues.F90' )
83 DO ireg=lbound(regions,1),ubound(regions,1)
85 input => regions(ireg)%peulInput
89 DO ilev=1,regions(ireg)%nGridLevels
91 peul => regions(ireg)%levels(ilev)%peul
93 peul%nCv1 = cv_peul_neqs
97 peul%nCv =
input%nPtypes * peul%nCv1
98 peul%nDv =
input%nPtypes * peul%nDv1
99 peul%nTv =
input%nPtypes * peul%nTv1
107 DO iptype = 1,
input%nPtypes
109 ptype =>
input%ptypes(iptype)
113 IF (.NOT.
ASSOCIATED(ptype%material)) &
114 CALL
errorstop( global,err_val_undefined,__line__ )
116 IF (ptype%material%molw <= 0._rfreal) &
117 CALL
errorstop( global,err_peul_badval,__line__ )
119 IF (ptype%material%molw > 10._rfreal)
THEN
121 WRITE(stdout,*)
'### WARNING: Molecular weight suspiciously large: ', &
123 WRITE(stdout,*)
'### E.g., in SI units carbon is 0.012'
127 IF (ptype%material%dens <= 0._rfreal) &
128 CALL
errorstop( global,err_peul_badval,__line__ )
130 IF (ptype%material%spht <= 0._rfreal) &
131 CALL
errorstop( global,err_peul_badval,__line__ )
133 IF (ptype%diam <= 0._rfreal) &
134 CALL
errorstop( global,err_peul_badval,__line__ )
136 IF (ptype%diam > 0.099_rfreal)
THEN
138 WRITE(stdout,*)
'### WARNING: Particle diameter suspiciously large: ', &
140 WRITE(stdout,*)
'### Input units are meters'
144 IF (ptype%puff < 1._rfreal)
THEN
145 IF (ptype%puff < 0.999_rfreal)
THEN
146 CALL
errorstop( global,err_peul_badval,__line__ )
148 ptype%puff = 1._rfreal
160 IF (ptype%vis4 <= 0._rfreal) &
161 CALL
errorstop( global,err_peul_badval,__line__ )
163 ptype%vis4 = 1._rfreal/ptype%vis4
165 SELECT CASE (ptype%negReport)
166 CASE (peul_neg_report_none)
167 CASE (peul_neg_report_used)
169 CALL
errorstop( global,err_peul_badval,__line__ )
172 SELECT CASE (ptype%clipModel)
173 CASE (peul_clip_model_none)
174 CASE (peul_clip_model_used)
176 CALL
errorstop( global,err_peul_badval,__line__ )
179 SELECT CASE (ptype%methodV)
181 CASE (peul_methv_fluidvel)
183 CASE (peul_methv_eqeul)
188 IF (regions(ireg)%mixtInput%flowModel /= flow_navst)
THEN
189 WRITE(stdout,*)
'### PEUL: Eq. Eul. method requires Navier-Stokes'
190 CALL
errorstop( global,err_peul_badval,__line__ )
193 regions(ireg)%mixtInput%computeTv = .true.
194 DO ilev=1,regions(ireg)%nGridLevels
195 IF (regions(ireg)%levels(ilev)%mixt%nTv < 2)
THEN
196 regions(ireg)%levels(ilev)%mixt%nTv = 2
199 IF (regions(ireg)%mixtInput%viscModel < visc_suthr .OR. &
200 regions(ireg)%mixtInput%viscModel > visc_antib)
THEN
201 CALL
errorstop(global,err_unknown_viscmodel,__line__)
205 CALL
errorstop( global,err_peul_badval,__line__ )
211 ptype%denseff = ptype%material%dens / ptype%puff
212 ptype%voleff = ptype%diam**3 * global%pi / 6._rfreal
213 ptype%volmat = ptype%voleff / ptype%puff
216 ptype%tauVcoef = (ptype%denseff - 1._rfreal)*ptype%diam**2 / 18._rfreal
218 ptype%maxConc = 0.7_rfreal*ptype%denseff
subroutine registerfunction(global, funName, fileName)
subroutine input(X, NNODE, NDC, NCELL, NFCE, NBPTS, NBFACE, ITYP, NPROP, XBNDY, XFAR, YFAR, ZFAR)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)