54 TYPE(t_region
) :: region
59 CHARACTER(CHRLEN) :: rcsidentstring
62 INTEGER :: turbmodel, modelclass
66 INTEGER :: wallmodel, wlmrefpoint
67 REAL(RFREAL) :: wallrough
70 INTEGER :: engmodel, filterwidth(diri:dirk)
71 REAL(RFREAL) :: csmag, xyzsmag(xcoord:zcoord)
73 INTEGER :: filtertype, deltatype, homdir(diri:dirk)
77 INTEGER :: wdistmeth, functv1, discrtype, discrorder
78 REAL(RFREAL) :: cb1, cb2, cw2, cw3, cv1, rsigma, rkappa, cw1, cdes
79 REAL(RFREAL) :: smoocf, k2, ook4
83 rcsidentstring =
'$RCSfile: TURB_PrintUserInput.F90,v $'
85 global => region%global
87 'TURB_PrintUserInput.F90' )
91 turbmodel = region%mixtInput%turbModel
92 calcvort = region%turbInput%calcVort
95 wallmodel = region%turbInput%wallModel
96 wlmrefpoint = region%turbInput%wlmRefPoint
97 wallrough = region%turbInput%wallRough
100 csmag = region%turbInput%cSmag
101 xyzsmag(:) = region%turbInput%xyzSmag(:)
102 modelclass = region%turbInput%modelClass
103 filterwidth(:) = region%turbInput%filterWidth(:)
104 engmodel = region%turbInput%engModel
106 filtertype = region%turbInput%filterType
107 deltatype = region%turbInput%deltaType
108 homdir(:) = region%turbInput%homDir(:)
112 IF ((turbmodel==turb_model_sa).OR.(turbmodel==turb_model_dessa).OR. &
113 (turbmodel==turb_model_hdessa))
THEN
114 cb1 = region%turbInput%const(mc_sa_cb1)
115 cb2 = region%turbInput%const(mc_sa_cb2)
116 cw2 = region%turbInput%const(mc_sa_cw2)
117 cw3 = region%turbInput%const(mc_sa_cw3)
118 cv1 = region%turbInput%const(mc_sa_cv1)
119 rsigma = region%turbInput%const(mc_sa_rsig)
120 rkappa = region%turbInput%const(mc_sa_rkap)
121 cw1 = region%turbInput%const(mc_sa_cw1)
122 cdes = region%turbInput%cdes
124 wdistmeth = region%turbInput%wDistMethod
125 functv1 = region%turbInput%functV1
126 smoocf = region%turbInput%smoocf
127 discrtype = region%turbInput%spaceDiscr
128 k2 = region%turbInput%vis2
129 ook4 = 1._rfreal/region%turbInput%vis4
130 discrorder = region%turbInput%spaceOrder
134 IF (turbmodel==turb_model_fixsmag)
THEN
135 WRITE(stdout,1005) solver_name//
' turbulence model = basic Smagorinsky'
136 ELSEIF (turbmodel==turb_model_scalsim)
THEN
137 WRITE(stdout,1005) solver_name//
' turbulence model = scale similarity'
138 ELSEIF (turbmodel==turb_model_dynsmag)
THEN
139 WRITE(stdout,1005) solver_name//
' turbulence model = dynamic Smagorinsky'
140 ELSEIF (turbmodel==turb_model_dynmixd)
THEN
141 WRITE(stdout,1005) solver_name//
' turbulence model = dynamic mixed'
142 ELSEIF (turbmodel==turb_model_sa)
THEN
143 WRITE(stdout,1005) solver_name//
' turbulence model = Spalart-Allmaras'
144 ELSEIF (turbmodel==turb_model_dessa)
THEN
145 WRITE(stdout,1005) solver_name//
' turbulence model = DES-SA'
146 ELSEIF (turbmodel==turb_model_hdessa)
THEN
147 WRITE(stdout,1005) solver_name//
' turbulence model = Hybrid DES-SA'
149 WRITE(stdout,1030) solver_name//
' relevant input-data based on above model:'
153 IF (modelclass==model_les)
THEN
157 WRITE(stdout,1030) solver_name//
' class of model = LES'
158 IF (engmodel==active)
THEN
159 WRITE(stdout,1030) solver_name//
' energy SGS model = active'
161 WRITE(stdout,1030) solver_name//
' energy SGS model = off'
164 IF (turbmodel==turb_model_fixsmag)
THEN
165 WRITE(stdout,1020) solver_name//
' C-Smagorinsky =',csmag
167 IF (turbmodel==turb_model_fixsmag .OR. &
168 turbmodel==turb_model_dynsmag .OR. &
169 turbmodel==turb_model_dynmixd)
THEN
170 IF (xyzsmag(xcoord) > -huge(1._rfreal )/1000._rfreal)
THEN
171 WRITE(stdout,1020) solver_name//
' x-tripping =',xyzsmag(xcoord)
173 IF (xyzsmag(ycoord) > -huge(1._rfreal )/1000._rfreal)
THEN
174 WRITE(stdout,1020) solver_name//
' y-tripping =',xyzsmag(ycoord)
176 IF (xyzsmag(zcoord) > -huge(1._rfreal )/1000._rfreal)
THEN
177 WRITE(stdout,1020) solver_name//
' z-tripping =',xyzsmag(zcoord)
180 IF (turbmodel/=turb_model_fixsmag)
THEN
182 IF (filtertype==filtype_uniform)
THEN
183 WRITE(stdout,1030) solver_name//
' filter type = uniform'
185 WRITE(stdout,1030) solver_name//
' filter type = non-uniform'
187 IF (deltatype==deltype_cbrt)
THEN
188 WRITE(stdout,1030) solver_name//
' delta type = cuberoot formula'
190 WRITE(stdout,1030) solver_name//
' delta type = sqrroot formula'
193 WRITE(stdout,1010) solver_name//
' ijk-filter width =', &
194 filterwidth(diri), filterwidth(dirj), &
195 filterwidth(dirk),
' grid-spacing'
197 WRITE(stdout,1010) solver_name//
' ijk-homogen dir. =', &
198 homdir(diri),homdir(dirj),homdir(dirk), &
199 ' (1 = homogeneous, 0 = non-homogeneous)'
202 WRITE(stdout,1008) solver_name//
' filter width =', &
203 filterwidth(diri),
' grid-spacing'
210 WRITE(stdout,1030) solver_name//
' class of model = RANS or DES'
211 IF ((turbmodel==turb_model_sa).OR.(turbmodel==turb_model_dessa).OR. &
212 (turbmodel==turb_model_hdessa))
THEN
213 WRITE(stdout,1020) solver_name//
' model const. cb1 =',cb1
214 WRITE(stdout,1020) solver_name//
' model const. cb2 =',cb2
215 WRITE(stdout,1020) solver_name//
' model const. cw2 =',cw2
216 WRITE(stdout,1020) solver_name//
' model const. cw3 =',cw3
217 WRITE(stdout,1020) solver_name//
' model const. cv1 =',cv1
218 WRITE(stdout,1020) solver_name//
' model const. SIG =',1._rfreal/rsigma
219 WRITE(stdout,1020) solver_name//
' model const. KAP =',1._rfreal/rkappa
220 WRITE(stdout,1020) solver_name//
' model const. cw1 =',cw1
221 IF (turbmodel==turb_model_dessa .OR. turbmodel==turb_model_hdessa) &
222 WRITE(stdout,1020) solver_name//
' DES spacing coef =',cdes
223 IF (wdistmeth == wdist_direct) &
224 WRITE(stdout,1030) solver_name//
' wall dist.method = direct'
225 IF (wdistmeth == wdist_hierar) &
226 WRITE(stdout,1030) solver_name//
' wall dist.method = hierarchical'
227 IF (functv1 == sa_fv1_pow3) &
228 WRITE(stdout,1030) solver_name//
' visc. funct. fv1 = power 3 formula'
229 IF (functv1 == sa_fv1_pow2) &
230 WRITE(stdout,1030) solver_name//
' visc. funct. fv1 = power 2 formula'
232 WRITE(stdout,1030) solver_name//
' RANS/DES Numeric :'
233 WRITE(stdout,1020) solver_name//
' RANS smoocf =',smoocf
234 IF (discrtype == rans_discr_cen)
THEN
235 IF (discrorder == rans_discr_ord1) &
236 WRITE(stdout,1030) solver_name//
' RANS spc discr. = 1st order central'
237 IF (discrorder == rans_discr_ord2) &
238 WRITE(stdout,1030) solver_name//
' RANS spc discr. = 2nd order central'
239 WRITE(stdout,1020) solver_name//
' RANS k2 =',k2
240 WRITE(stdout,1020) solver_name//
' RANS 1/k4 =',ook4
241 ELSEIF (discrtype == rans_discr_upw)
THEN
242 IF (discrorder == rans_discr_ord1) &
243 WRITE(stdout,1030) solver_name//
' RANS spc discr. = 1st order upwind'
244 IF (discrorder == rans_discr_ord2) &
245 WRITE(stdout,1030) solver_name//
' RANS spc discr. = 2nd order upwind'
251 IF (calcvort == calcvort_fdt)
THEN
252 WRITE(stdout,1030) solver_name//
' vorticity sample : per fluid dt'
253 ELSEIF (calcvort == calcvort_sdt)
THEN
254 WRITE(stdout,1030) solver_name//
' vorticity sample : per system dt (Genx)'
259 IF (wallmodel==wlm_model_loglay)
THEN
260 WRITE(stdout,1030) solver_name//
' best wall model = log layer model'
261 ELSEIF (wallmodel==wlm_model_bndlay)
THEN
262 WRITE(stdout,1030) solver_name//
' best wall model = boundary layer model'
263 ELSEIF (wallmodel==wlm_model_extern)
THEN
264 WRITE(stdout,1030) solver_name//
' best wall model = prescribed wall stress'
266 IF (wallmodel/=wlm_model_nomodel)
THEN
267 WRITE(stdout,1020) solver_name//
' max. ref. point =', wlmrefpoint
268 IF (wallrough > real_small)
THEN
269 WRITE(stdout,1020) solver_name//
' max. roughness =', wallrough
subroutine registerfunction(global, funName, fileName)
subroutine deregisterfunction(global)