File: RELATIVE:/../../../mfix.git/model/write_out0.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv!
2     !                                                                      !
3     !  Subroutine: WRITE_OUT0                                              !
4     !  Author: P. Nicoletti, M. Syamlal                   Date: 04-DEC-91  !
5     !                                                                      !
6     !  Purpose: Echo user input.                                           !
7     !                                                                      !
8     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!
9           SUBROUTINE WRITE_OUT0
10     !
11     !-----------------------------------------------
12     !   M o d u l e s
13     !-----------------------------------------------
14           USE bc
15           USE compar
16           USE constant
17           USE discretelement
18           USE fldvar
19           USE funits
20           USE geometry
21           USE ic
22           USE indices
23           USE is
24           USE leqsol
25           USE machine
26           USE mfix_pic
27           USE mpi_utility
28           USE output
29           USE param
30           USE param1
31           USE particle_filter
32           USE physprop
33           USE run
34           USE rxns
35           USE scalars
36           USE scales
37           USE sendrecv
38           USE toleranc
39           USE ur_facs
40     
41           IMPLICIT NONE
42     !-----------------------------------------------
43     !   G l o b a l   P a r a m e t e r s
44     !-----------------------------------------------
45     !-----------------------------------------------
46     !   L o c a l   P a r a m e t e r s
47     !-----------------------------------------------
48     !-----------------------------------------------
49     !   L o c a l   V a r i a b l e s
50     !-----------------------------------------------
51           INTEGER :: L, M, N
52     
53           INTEGER :: MMAX_TOT
54           DOUBLE PRECISION :: TMP_DP
55     
56     
57           DOUBLE PRECISION, DIMENSION(6) :: LOC
58     
59     ! Coefficient of restitution (old symbol)
60           CHARACTER(LEN=3), DIMENSION(3) :: LEGEND
61           CHARACTER(LEN=12), DIMENSION(0:9) :: DISCR_NAME
62           CHARACTER(LEN=12), DIMENSION(0:9) :: DISCR_NAME1
63           CHARACTER(LEN=8), DIMENSION(1:4) :: LEQ_METHOD_NAME
64     !-----------------------------------------------
65     
66     !
67           DATA DISCR_NAME/'FOUP', 'FOUP', 'Superbee', 'Smart', 'Ultra-Quick', &
68              'QUICKEST', 'Muscl', 'VanLeer', 'Minmod', 'Central'/
69           DATA DISCR_NAME1/'FOUP', 'FOUP', 'Fourth Order', 'Smart', 'Ultra-Quick', &
70              'QUICKEST', 'Muscl', 'VanLeer', 'Minmod', 'Central'/
71           DATA LEQ_METHOD_NAME/'   SOR  ', 'BiCGSTAB', '  GMRES ', '   CG   '/
72     
73           if (myPE.ne.PE_IO) return
74     
75           MMAX_TOT = MMAX + DES_MMAX
76     !
77     !  Write Headers for .OUT file
78     !
79           WRITE(UNIT_OUT,1000)ID_VERSION,ID_HOUR,ID_MINUTE,ID_MONTH,ID_DAY,ID_YEAR
80           WRITE (UNIT_OUT, 1010) ID_NODE(1:50)
81     !
82     !  Echo input data
83     !
84     !  Run control section
85     !
86           WRITE (UNIT_OUT, 1100)
87           WRITE (UNIT_OUT, 1110) RUN_NAME
88           WRITE (UNIT_OUT, 1120) DESCRIPTION
89           WRITE (UNIT_OUT, 1130) UNITS
90           IF (DT /= UNDEFINED) THEN
91              WRITE (UNIT_OUT, 1135) TIME, TSTOP, DT, DT_MAX, DT_MIN, DT_FAC
92           ELSE
93              WRITE (UNIT_OUT, 1136)
94           ENDIF
95           WRITE (UNIT_OUT, 1137) RUN_TYPE
96           IF (RUN_TYPE == 'NEW') THEN
97              WRITE (UNIT_OUT, 1138)
98           ELSE IF (RUN_TYPE == 'RESTART_1') THEN
99              WRITE (UNIT_OUT, 1139)
100           ENDIF
101           IF (MOMENTUM_X_EQ(0)) THEN
102              WRITE (UNIT_OUT, 1140) 'X', ' '
103           ELSE
104              WRITE (UNIT_OUT, 1140) 'X', ' NOT '
105           ENDIF
106           IF (MOMENTUM_Y_EQ(0)) THEN
107              WRITE (UNIT_OUT, 1140) 'Y', ' '
108           ELSE
109              WRITE (UNIT_OUT, 1140) 'Y', ' NOT '
110           ENDIF
111           IF (MOMENTUM_Z_EQ(0)) THEN
112              WRITE (UNIT_OUT, 1140) 'Z', ' '
113           ELSE
114              WRITE (UNIT_OUT, 1140) 'Z', ' NOT '
115           ENDIF
116           DO M = 1, MMAX
117              IF (MOMENTUM_X_EQ(M)) THEN
118                 WRITE (UNIT_OUT, 1141) M, 'X', ' '
119              ELSE
120                 WRITE (UNIT_OUT, 1141) M, 'X', ' NOT '
121              ENDIF
122              IF (MOMENTUM_Y_EQ(M)) THEN
123                 WRITE (UNIT_OUT, 1141) M, 'Y', ' '
124              ELSE
125                 WRITE (UNIT_OUT, 1141) M, 'Y', ' NOT '
126              ENDIF
127              IF (MOMENTUM_Z_EQ(M)) THEN
128                 WRITE (UNIT_OUT, 1141) M, 'Z', ' '
129              ELSE
130                 WRITE (UNIT_OUT, 1141) M, 'Z', ' NOT '
131              ENDIF
132           END DO
133           IF (GRANULAR_ENERGY) THEN
134             WRITE (UNIT_OUT, 1142)
135             IF(KT_TYPE /= UNDEFINED_C) WRITE (UNIT_OUT, 1123) KT_TYPE(1:50)
136           ENDIF
137           IF (ENERGY_EQ) THEN
138              WRITE (UNIT_OUT, 1143)
139           ELSE
140              WRITE (UNIT_OUT, 1144)
141           ENDIF
142           IF (SPECIES_EQ(0)) THEN
143              WRITE (UNIT_OUT, 1145)
144           ELSE
145              WRITE (UNIT_OUT, 1146)
146           ENDIF
147           DO M = 1, MMAX_TOT
148              IF (SPECIES_EQ(M)) THEN
149                 WRITE (UNIT_OUT, 1147) M
150              ELSE
151                 WRITE (UNIT_OUT, 1148) M
152              ENDIF
153           END DO
154           IF (CALL_USR) THEN
155              WRITE (UNIT_OUT, 1149) ' '
156           ELSE
157              WRITE (UNIT_OUT, 1149) ' NOT '
158           ENDIF
159           IF (MODEL_B) WRITE (UNIT_OUT, 1101)
160           IF (Nscalar /= 0)THEN
161             WRITE (UNIT_OUT, 1102)NScalar
162             DO L = 1, NScalar
163               WRITE (UNIT_OUT, 1103)L, Phase4Scalar(L)
164             END DO
165           ENDIF
166           IF (K_Epsilon) WRITE (UNIT_OUT, 1104)
167           IF (SIMONIN) WRITE (UNIT_OUT, 1105)
168           IF (AHMADI) WRITE (UNIT_OUT, 1106)
169           IF (SIMONIN .OR. AHMADI) WRITE (UNIT_OUT, 1107)
170           IF (SCHAEFFER) WRITE (UNIT_OUT, 1108)
171           IF (FRICTION) WRITE (UNIT_OUT, 1109)
172           IF (ADDED_MASS) WRITE (UNIT_OUT, 1111)
173     !
174     !  Physical and numerical parameters
175     !
176           WRITE (UNIT_OUT, 1150)
177           IF (C_E /= UNDEFINED) WRITE (UNIT_OUT, 1151) C_E
178           IF (C_F /= UNDEFINED) WRITE (UNIT_OUT, 1152) C_F
179           IF (PHI /= UNDEFINED) WRITE (UNIT_OUT, 1153) PHI
180           IF (PHI_W /= UNDEFINED) WRITE (UNIT_OUT, 1154) PHI_W
181           WRITE (UNIT_OUT, 1155) L_SCALE0, MU_GMAX
182           IF (V_EX /= ZERO) WRITE (UNIT_OUT, 1156) V_EX
183           WRITE (UNIT_OUT, 1157) P_REF, P_SCALE, GRAVITY
184           WRITE (UNIT_OUT, 1158)
185           IF(FPFOI) THEN
186              WRITE (UNIT_OUT, 1159) (UR_FAC(L),LEQ_IT(L),&
187                                  LEQ_METHOD_NAME(LEQ_METHOD(L)),&
188                                  LEQ_SWEEP(L), LEQ_TOL(L), LEQ_PC(L),&
189                                  DISCR_NAME1(DISCRETIZE(L)),L=1,9)
190           ELSE
191              WRITE (UNIT_OUT, 1159) (UR_FAC(L),LEQ_IT(L),&
192                                  LEQ_METHOD_NAME(LEQ_METHOD(L)),&
193                                  LEQ_SWEEP(L), LEQ_TOL(L), LEQ_PC(L),&
194                                  DISCR_NAME(DISCRETIZE(L)),L=1,9)
195           ENDIF
196     
197           DO L = 1, DIMENSION_C
198              IF (C(L) /= UNDEFINED) WRITE (UNIT_OUT, 1190) C_NAME(L), L, C(L)
199           END DO
200     
201     ! Geometry and Discretization.
202           IF(.NOT.REINITIALIZING) THEN
203              WRITE (UNIT_OUT, 1200)
204              WRITE (UNIT_OUT, 1201) COORDINATES
205              IF (CYCLIC_X_PD) THEN
206                 WRITE (UNIT_OUT, 1202) 'X', ' with pressure drop'
207                 WRITE (UNIT_OUT, 1203) 'X', DELP_X
208              ELSE IF (CYCLIC_X) THEN
209                 WRITE (UNIT_OUT, 1202) 'X'
210              ENDIF
211              IF (CYCLIC_Y_PD) THEN
212                 WRITE (UNIT_OUT, 1202) 'Y', ' with pressure drop'
213                 WRITE (UNIT_OUT, 1203) 'Y', DELP_Y
214              ELSE IF (CYCLIC_Y) THEN
215                 WRITE (UNIT_OUT, 1202) 'Y'
216              ENDIF
217              IF (CYCLIC_Z_PD) THEN
218                 WRITE (UNIT_OUT, 1202) 'Z', ' with pressure drop'
219                 WRITE (UNIT_OUT, 1203) 'Z', DELP_Z
220              ELSE IF (CYCLIC_Z) THEN
221                 WRITE (UNIT_OUT, 1202) 'Z'
222              ENDIF
223              WRITE (UNIT_OUT, 1210)
224              LEGEND(1) = '  I'
225              LEGEND(2) = ' DX'
226              LEGEND(3) = 'X_E'
227              CALL WRITE_TABLE (LEGEND, DX, XMIN, 1, IMAX2)
228              IF (XMIN /= ZERO) WRITE (UNIT_OUT, 1211) XMIN
229              WRITE (UNIT_OUT, 1212) IMAX
230              WRITE (UNIT_OUT, 1213) XLENGTH
231              WRITE (UNIT_OUT, 1220)
232              LEGEND(1) = '  J'
233              LEGEND(2) = ' DY'
234              LEGEND(3) = 'Y_N'
235              CALL WRITE_TABLE (LEGEND, DY, ZERO, 1, JMAX2)
236              WRITE (UNIT_OUT, 1221) JMAX
237              WRITE (UNIT_OUT, 1222) YLENGTH
238              WRITE (UNIT_OUT, 1230)
239              LEGEND(1) = '  K'
240              LEGEND(2) = ' DZ'
241              LEGEND(3) = 'Z_T'
242              CALL WRITE_TABLE (LEGEND, DZ, ZERO, 1, KMAX2)
243              WRITE (UNIT_OUT, 1231) KMAX
244              WRITE (UNIT_OUT, 1232) ZLENGTH
245           ENDIF
246     
247     !
248     !  Gas Section
249     !
250           WRITE (UNIT_OUT, 1300)
251           IF (RO_G0 /= UNDEFINED) WRITE (UNIT_OUT, 1305) RO_G0
252           IF (MU_G0 /= UNDEFINED) WRITE (UNIT_OUT, 1310) MU_G0
253           IF (SPECIES_EQ(0)) THEN
254              WRITE (UNIT_OUT, 1315) NMAX(0)
255              WRITE (UNIT_OUT, 1316)
256              DO N = 1, NMAX(0)
257                 WRITE (UNIT_OUT, 1317) N, MW_G(N)
258              END DO
259           ENDIF
260           IF (MW_AVG /= UNDEFINED) WRITE (UNIT_OUT, 1320) MW_AVG
261     !
262     !  Particle Section
263     !
264     
265           WRITE (UNIT_OUT, 1400)
266           WRITE (UNIT_OUT, 1401) MMAX_TOT
267     
268     
269      1400 FORMAT(//,3X,'5. SOLIDS PHASE',/)
270      1401 FORMAT(7X,'Number of particulate phases (MMAX) = ',I2)
271     
272           IF(MMAX_TOT > 0) THEN
273     
274              WRITE (UNIT_OUT, 1405)
275              DO M = 1, MMAX_TOT
276                 TMP_DP = merge(BASE_ROs(M), RO_s0(M), SOLVE_ROs(M))
277                 WRITE (UNIT_OUT, 1406) M, SOLIDS_MODEL(M), D_P0(M),     &
278                    TMP_DP, CLOSE_PACKED(M)
279              END DO
280     
281     
282      1405 FORMAT(/7x,'M',4x,'Model',5x,'Diameter',8x,'Density',6x,         &
283              'Close_Packed')
284      1406 FORMAT(6x,I2,4x,A3,5X,G12.5,3x,G12.5,9x,L1)
285     
286      1410 FORMAT(/7X,'Number of solids-',I2,' species (NMAX(',I2,')) = ',I3)
287     
288      1411 FORMAT(9x,'Solid',5x,'Molecular')
289      1412 FORMAT(26x,'Density',4x,'Mass Fraction')
290     
291      1415 FORMAT(8x,'Species',5x,'weight',7x,'Alias',5x,'Name')
292      1416 FORMAT(7x,'(RO_Xs0)',6x,'(X_s0)')
293     
294     
295              DO M = 1, MMAX_TOT
296                 IF(.NOT.SPECIES_EQ(M)) CYCLE
297                 WRITE (UNIT_OUT, 1410) M, M, NMAX(M)
298     
299     ! Header Line 1
300                 WRITE(UNIT_OUT,1411,ADVANCE='NO')
301                 IF(SOLVE_ROs(M)) WRITE(UNIT_OUT,1412, ADVANCE='NO')
302                 WRITE(UNIT_OUT,*)' '
303     
304     ! Header Line 2
305                 WRITE(UNIT_OUT,1415,ADVANCE='NO')
306                 IF(SOLVE_ROs(M)) WRITE(UNIT_OUT,1416,ADVANCE='NO')
307                 WRITE(UNIT_OUT,*)' '
308     
309     
310                 DO N = 1, NMAX(M)
311                    WRITE(UNIT_OUT, 1420, ADVANCE='NO') N, MW_S(M,N),       &
312                       SPECIES_ALIAS_s(M,N)(1:8), SPECIES_s(M,N)(1:8)
313                    IF(SOLVE_ROs(M)) WRITE(UNIT_OUT, 1421, ADVANCE='NO')    &
314                       RO_Xs0(M,N), X_s0(M,N)
315                    WRITE(UNIT_OUT,*) ' '
316     
317      1420 FORMAT(10x,I2,5x,G12.5,2(2x,A8))
318      1421 FORMAT(2(2x,G12.5))
319     
320                 END DO
321              END DO
322     
323     
324              IF(TFM_SOLIDS) THEN
325                 WRITE (UNIT_OUT, 1430) EP_STAR
326                 DO M = 1,MMAX
327                    IF(MU_S0(M) /= UNDEFINED) &
328                       WRITE(UNIT_OUT, 1431) M, MU_S0(M)
329                 ENDDO
330              ENDIF
331      1430 FORMAT(/7X,'Void fraction at maximum packing (EP_star) = ',G12.5)
332      1431 FORMAT(7X,'Constant solids viscosity (MU_s0(',I2,') = ',G12.5)
333     
334     
335              IF(DEM_SOLIDS .OR. PIC_SOLIDS) THEN
336                 IF(.NOT.DES_CONTINUUM_COUPLED) THEN
337                    WRITE(UNIT_OUT,"(/7X,'Gas/Solids NOT coupled.')")
338                 ELSE
339                    WRITE(UNIT_OUT,"(/7X,'Gas/Solids Coupling Information:')")
340     
341                    IF(DES_INTERP_ON) THEN
342                       WRITE(UNIT_OUT,1440) 'interpolation'
343                    ELSE
344                       WRITE(UNIT_OUT,1440) 'cell averaging'
345                    ENDIF
346     
347                    IF(DES_INTERP_MEAN_FIELDS) THEN
348                       WRITE(UNIT_OUT,1441) 'interpolation'
349                    ELSE
350                       WRITE(UNIT_OUT,1441) 'cell averaging'
351                    ENDIF
352                 ENDIF
353     
354      1440 FORMAT(10X,'Use ',A,' to calculate gas/particle drag.')
355      1441 FORMAT(10X,'Use ',A,' to calculate dispersed phase scalar fields.')
356     
357              ENDIF
358     
359              IF(DEM_SOLIDS) THEN
360     
361      1450 FORMAT(/7X,'Use ',A,' collsion model.',2/10X,&
362              'Spring Coefficients:',T37,'Normal',7x,'Tangential')
363     
364                 IF(DES_COLL_MODEL_ENUM .EQ. LSD) THEN
365                    WRITE(UNIT_OUT,1450) 'Linear spring-dashpot'
366                    WRITE(UNIT_OUT,1455) 'Particle-particle', KN, KT
367                    WRITE(UNIT_OUT,1455) 'Particle-wall', KN_W, KT_W
368     
369                 ELSEIF(DES_COLL_MODEL_ENUM .EQ. HERTZIAN) THEN
370                    WRITE(UNIT_OUT,1450) 'Hertzian spring-dashpot'
371     
372                    DO M = 1, DES_MMAX
373                       DO N = M, DES_MMAX
374                          IF(M==N) THEN
375                            WRITE(UNIT_OUT,1456)M,N,HERT_KN(M,N),HERT_KT(M,N)
376                          ELSE
377                            WRITE(UNIT_OUT,1457)N,HERT_KN(M,N),HERT_KT(M,N)
378                          ENDIF
379                       ENDDO
380                       WRITE(UNIT_OUT,1458) HERT_KWN(M),HERT_KWT(M)
381                    ENDDO
382                 ENDIF
383     
384                 WRITE(UNIT_OUT,1451)
385      1451 FORMAT(/10X,'Damping Coefficients:',T37,'Normal',7x,'Tangential')
386     
387                 DO M = 1, DES_MMAX
388                    DO N = M, DES_MMAX
389                       IF(M==N) THEN
390                          WRITE(UNIT_OUT,1456)M,N,DES_ETAN(M,N),DES_ETAT(M,N)
391                       ELSE
392                          WRITE(UNIT_OUT,1457)N,DES_ETAN(M,N),DES_ETAT(M,N)
393                       ENDIF
394                    ENDDO
395                    WRITE(UNIT_OUT,1458) DES_ETAN_WALL(M),DES_ETAT_WALL(M)
396                 ENDDO
397     
398      1455 FORMAT(12X,A,T35,g12.5,3x,g12.5)
399      1456 FORMAT(12X,'Phase',I2,'-Phase',I2,' = ',T35,g12.5,3x,g12.5)
400      1457 FORMAT(19X,'-Phase',I2,' = ',T35,g12.5,3x,g12.5)
401      1458 FORMAT(19X,'-Wall',3x,' = ',T35,g12.5,3x,g12.5)
402     
403              ENDIF
404     
405              IF(PIC_SOLIDS) THEN
406                 WRITE(UNIT_OUT,"(/7X,A)") 'MP-PIC Model Parameters:'
407                 IF(MPPIC_SOLID_STRESS_SNIDER) THEN
408                    WRITE(UNIT_OUT,"(10X,A)")  &
409                       'SNIDER model for solids Stress and integration'
410                 ENDIF
411              ENDIF
412     
413           ENDIF
414     
415     !
416     !  Initial Conditions Section
417     !
418           WRITE (UNIT_OUT, 1500)
419           DO L = 1, DIMENSION_IC
420              IF (IC_DEFINED(L)) THEN
421                 WRITE (UNIT_OUT, 1510) L
422                 LOC(1) = LOCATION(IC_I_W(L),XMIN,DX) - HALF*DX(IC_I_W(L))
423                 LOC(2) = LOCATION(IC_I_E(L),XMIN,DX) + HALF*DX(IC_I_E(L))
424                 LOC(3) = LOCATION(IC_J_S(L),ZERO,DY) - HALF*DY(IC_J_S(L))
425                 LOC(4) = LOCATION(IC_J_N(L),ZERO,DY) + HALF*DY(IC_J_N(L))
426                 LOC(5) = LOCATION(IC_K_B(L),ZERO,DZ) - HALF*DZ(IC_K_B(L))
427                 LOC(6) = LOCATION(IC_K_T(L),ZERO,DZ) + HALF*DZ(IC_K_T(L))
428                 WRITE (UNIT_OUT, 1520) IC_X_W(L), LOC(1), IC_X_E(L), LOC(2), IC_Y_S&
429                    (L), LOC(3), IC_Y_N(L), LOC(4), IC_Z_B(L), LOC(5), IC_Z_T(L), &
430                    LOC(6)
431                 WRITE (UNIT_OUT, 1530) IC_I_W(L), IC_I_E(L), IC_J_S(L), IC_J_N(L), &
432                    IC_K_B(L), IC_K_T(L)
433                 WRITE (UNIT_OUT, 1540) IC_EP_G(L)
434                 IF (IC_P_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1541) IC_P_G(L)
435                 WRITE (UNIT_OUT, 1542) IC_T_G(L)
436                 IF (SPECIES_EQ(0)) THEN
437                    WRITE (UNIT_OUT, 1543)
438                    DO N = 1, NMAX(0)
439                       WRITE (UNIT_OUT, 1544) N, IC_X_G(L,N)
440                    END DO
441                 ENDIF
442                 IF (IC_GAMA_RG(L) /= ZERO) WRITE (UNIT_OUT, 1545) IC_GAMA_RG(L), &
443                    IC_T_RG(L)
444     !
445                 WRITE (UNIT_OUT, 1550) IC_U_G(L), IC_V_G(L), IC_W_G(L)
446                 DO M = 1, MMAX_TOT
447                    WRITE (UNIT_OUT, 1560) M, IC_ROP_S(L,M)
448                    WRITE (UNIT_OUT, 1561) M, IC_T_S(L,M)
449     
450                 END DO
451                 DO M = 1, MMAX_TOT
452                    IF (SPECIES_EQ(M)) THEN
453                       WRITE (UNIT_OUT, 1563) M
454     
455                       DO N = 1, NMAX(M)
456                          WRITE (UNIT_OUT, 1564) N, IC_X_S(L,M,N)
457                       END DO
458                    ENDIF
459                 END DO
460                 DO M = 1, MMAX_TOT
461                    IF (IC_GAMA_RS(L,M) /= ZERO) WRITE (UNIT_OUT, 1565) M, &
462                       IC_GAMA_RS(L,M), IC_T_RS(L,M)
463     !
464                    WRITE(UNIT_OUT,1570)M,IC_U_S(L,M),M,IC_V_S(L,M),M,IC_W_S(L,M)
465                 END DO
466                 IF (IC_P_STAR(L) /= UNDEFINED) WRITE (UNIT_OUT, 1574) IC_P_STAR(L)
467                 IF(IC_L_SCALE(L)/=UNDEFINED)WRITE(UNIT_OUT,1575)IC_L_SCALE(L)
468              ENDIF
469           END DO
470     
471     ! Boundary Condition Data
472           WRITE (UNIT_OUT, 1600)
473           IF (U_G0 /= UNDEFINED) WRITE (UNIT_OUT, 1601) 'U_g (U_g0) = ', U_G0
474           IF (V_G0 /= UNDEFINED) WRITE (UNIT_OUT, 1601) 'V_g (V_g0) = ', V_G0
475           IF (W_G0 /= UNDEFINED) WRITE (UNIT_OUT, 1601) 'W_g (W_g0) = ', W_G0
476           DO M = 1, MMAX_TOT
477              IF (U_S0(M) /= UNDEFINED) WRITE (UNIT_OUT, 1602) 'U_s (U_s0[', M, &
478                 ']) = ', U_S0(M)
479              IF (V_S0(M) /= UNDEFINED) WRITE (UNIT_OUT, 1602) 'V_s (V_s0[', M, &
480                 ']) = ', V_S0(M)
481              IF (W_S0(M) /= UNDEFINED) WRITE (UNIT_OUT, 1602) 'W_s (W_s0[', M, &
482                 ']) = ', W_S0(M)
483           END DO
484           DO L = 1, DIMENSION_BC
485              IF (BC_DEFINED(L)) THEN
486                 WRITE (UNIT_OUT, 1610) L
487                 WRITE (UNIT_OUT, 1611) BC_TYPE(L)
488                 SELECT CASE (TRIM(BC_TYPE(L)))
489                 CASE ('MASS_INFLOW','CG_MI')
490                    WRITE (UNIT_OUT, 1612)
491                 CASE ('MASS_OUTFLOW')
492                    WRITE (UNIT_OUT, 1613)
493                 CASE ('P_INFLOW')
494                    WRITE (UNIT_OUT, 1614)
495                 CASE ('P_OUTFLOW','CG_PO')
496                    WRITE (UNIT_OUT, 1615)
497                 CASE ('FREE_SLIP_WALL','CG_FSW')
498                    WRITE (UNIT_OUT, 1616)
499                 CASE ('NO_SLIP_WALL','CG_NSW')
500                    WRITE (UNIT_OUT, 1617)
501                 CASE ('PAR_SLIP_WALL','CG_PSW')
502                    WRITE (UNIT_OUT, 1618)
503                 CASE ('OUTFLOW')
504                    WRITE (UNIT_OUT, 1619)
505                 END SELECT
506                 IF (BC_TYPE(L)(1:2)/='CG') THEN
507                    LOC(1) = LOCATION(BC_I_W(L),XMIN,DX) - HALF*DX(BC_I_W(L))
508                    LOC(2) = LOCATION(BC_I_E(L),XMIN,DX) + HALF*DX(BC_I_E(L))
509                    LOC(3) = LOCATION(BC_J_S(L),ZERO,DY) - HALF*DY(BC_J_S(L))
510                    LOC(4) = LOCATION(BC_J_N(L),ZERO,DY) + HALF*DY(BC_J_N(L))
511                    LOC(5) = LOCATION(BC_K_B(L),ZERO,DZ) - HALF*DZ(BC_K_B(L))
512                    LOC(6) = LOCATION(BC_K_T(L),ZERO,DZ) + HALF*DZ(BC_K_T(L))
513                    WRITE (UNIT_OUT, 1620) BC_X_W(L), LOC(1), BC_X_E(L), LOC(2), BC_Y_S&
514                    (L), LOC(3), BC_Y_N(L), LOC(4), BC_Z_B(L), LOC(5), BC_Z_T(L), &
515                    LOC(6)
516                    WRITE (UNIT_OUT, 1630) BC_I_W(L), BC_I_E(L), BC_J_S(L), BC_J_N(L), &
517                    BC_K_B(L), BC_K_T(L)
518                 ENDIF
519                 WRITE (UNIT_OUT,1635)  BC_AREA(L)
520     
521                 IF (BC_EP_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1640) BC_EP_G(L)
522                 IF (BC_P_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1641) BC_P_G(L)
523                 IF (BC_T_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1642) BC_T_G(L)
524                 IF (SPECIES_EQ(0) .AND. BC_X_G(L,1)/=UNDEFINED) THEN
525                    WRITE (UNIT_OUT, 1643)
526                    DO N = 1, NMAX(0)
527                       WRITE (UNIT_OUT, 1644) N, BC_X_G(L,N)
528                    END DO
529                 ENDIF
530                 IF (BC_MASSFLOW_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1648) &
531                    BC_MASSFLOW_G(L)
532                 IF (BC_VOLFLOW_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1649) &
533                    BC_VOLFLOW_G(L)
534                 IF (BC_U_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1650) BC_U_G(L)
535                 IF (BC_V_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1651) BC_V_G(L)
536                 IF (BC_W_G(L) /= UNDEFINED) WRITE (UNIT_OUT, 1652) BC_W_G(L)
537                 IF (BC_DT_0(L) /= UNDEFINED) THEN
538                    IF (BC_JET_G0(L) /= UNDEFINED) THEN
539                       WRITE (UNIT_OUT, 1655) BC_DT_0(L), BC_JET_G0(L), BC_DT_L(L), &
540                          BC_JET_GL(L), BC_DT_H(L), BC_JET_GH(L)
541                    ELSE
542                       WRITE (UNIT_OUT, 1656) BC_DT_0(L)
543                    ENDIF
544                 ENDIF
545                 DO M = 1, MMAX_TOT
546                    IF (BC_ROP_S(L,M) /= UNDEFINED) THEN
547                       WRITE (UNIT_OUT, "(' ')")
548                       WRITE (UNIT_OUT, 1660) M, BC_ROP_S(L,M)
549                       WRITE (UNIT_OUT, 1661) M, BC_T_S(L,M)
550                    ENDIF
551                 END DO
552                 DO M = 1, MMAX_TOT
553                    IF (SPECIES_EQ(M) .AND. BC_X_S(L,M,1)/=UNDEFINED) THEN
554                       WRITE (UNIT_OUT, "(' ')")
555                       WRITE (UNIT_OUT, 1663) M
556                       DO N = 1, NMAX(M)
557                          WRITE (UNIT_OUT, 1664) N, BC_X_S(L,M,N)
558                       END DO
559                    ENDIF
560                 END DO
561                 DO M = 1, MMAX_TOT
562                    WRITE (UNIT_OUT, "(' ')")
563                    IF (BC_MASSFLOW_S(L,M) /= UNDEFINED) WRITE (UNIT_OUT, 1668) M, &
564                       BC_MASSFLOW_S(L,M)
565                    IF (BC_VOLFLOW_S(L,M) /= UNDEFINED) WRITE (UNIT_OUT, 1669) M, &
566                       BC_VOLFLOW_S(L,M)
567                    IF(BC_U_S(L,M)/=UNDEFINED)WRITE(UNIT_OUT,1670)M,BC_U_S(L,M)
568                    IF(BC_V_S(L,M)/=UNDEFINED)WRITE(UNIT_OUT,1671)M,BC_V_S(L,M)
569                    IF(BC_W_S(L,M)/=UNDEFINED)WRITE(UNIT_OUT,1672)M,BC_W_S(L,M)
570                 END DO
571                 IF (BC_TYPE(L) == 'PAR_SLIP_WALL') THEN
572                    WRITE (UNIT_OUT, 1675) BC_HW_G(L), BC_UW_G(L), BC_VW_G(L), &
573                       BC_WW_G(L)
574                    DO M = 1, MMAX_TOT
575                       WRITE (UNIT_OUT, 1676) M, BC_HW_S(L,M), BC_UW_S(L,M), BC_VW_S&
576                          (L,M), BC_WW_S(L,M)
577                    END DO
578                 ENDIF
579              ENDIF
580           END DO
581           WRITE (UNIT_OUT, 1700)
582           DO L = 1, DIMENSION_IS
583              IF (IS_DEFINED(L)) THEN
584                 WRITE (UNIT_OUT, 1710) L
585                 WRITE (UNIT_OUT, 1711) IS_TYPE(L)
586                 IF(IS_TYPE(L)=='IMPERMEABLE' .OR. &
587                    IS_TYPE(L)(3:13)=='IMPERMEABLE') THEN
588                    WRITE (UNIT_OUT, 1712)
589                 ELSE IF (IS_TYPE(L)=='SEMIPERMEABLE' .OR. &
590                    IS_TYPE(L)(3:15)=='SEMIPERMEABLE') THEN
591                    WRITE (UNIT_OUT, 1713)
592                 ENDIF
593                 LOC(1) = LOCATION(IS_I_W(L),XMIN,DX) - HALF*DX(IS_I_W(L))
594                 LOC(2) = LOCATION(IS_I_E(L),XMIN,DX) + HALF*DX(IS_I_E(L))
595                 LOC(3) = LOCATION(IS_J_S(L),ZERO,DY) - HALF*DY(IS_J_S(L))
596                 LOC(4) = LOCATION(IS_J_N(L),ZERO,DY) + HALF*DY(IS_J_N(L))
597                 LOC(5) = LOCATION(IS_K_B(L),ZERO,DZ) - HALF*DZ(IS_K_B(L))
598                 LOC(6) = LOCATION(IS_K_T(L),ZERO,DZ) + HALF*DZ(IS_K_T(L))
599                 WRITE (UNIT_OUT, 1720) IS_X_W(L), LOC(1), IS_X_E(L), LOC(2), IS_Y_S&
600                    (L), LOC(3), IS_Y_N(L), LOC(4), IS_Z_B(L), LOC(5), IS_Z_T(L), &
601                    LOC(6)
602                 WRITE (UNIT_OUT, 1730) IS_I_W(L), IS_I_E(L), IS_J_S(L), IS_J_N(L), &
603                    IS_K_B(L), IS_K_T(L)
604                 IF (IS_PC(L,1) /= UNDEFINED) WRITE (UNIT_OUT, 1740) IS_PC(L,1)
605                 IF (IS_PC(L,2) /= UNDEFINED) WRITE (UNIT_OUT, 1741) IS_PC(L,2)
606                 DO M = 1, MMAX_TOT
607                    WRITE (UNIT_OUT, 1742) M, IS_VEL_S(L,M)
608                 END DO
609              ENDIF
610           END DO
611     
612     !
613     !  Print out file descriptions and write intervals.
614     !
615           WRITE (UNIT_OUT, 1800)
616           WRITE (UNIT_OUT, 1801) &
617              '.OUT','This file (ASCII)',OUT_DT
618           WRITE (UNIT_OUT, 1801) &
619              '.LOG','Log file containing messages (ASCII)',UNDEFINED
620           WRITE (UNIT_OUT, 1801) &
621              '.RES','Restart file (Binary)', RES_DT
622           WRITE (UNIT_OUT, 1801) &
623              '.SP1','EP_g (Binary, single precision)',SPX_DT(1)
624           WRITE (UNIT_OUT, 1801) &
625              '.SP2','P_g, P_star (Binary, single precision)',SPX_DT(2)
626           WRITE (UNIT_OUT, 1801) &
627              '.SP3','U_g, V_g, W_g (Binary, single precision)',SPX_DT(3)
628           WRITE (UNIT_OUT, 1801) &
629              '.SP4','U_s, V_s, W_s (Binary, single precision)',SPX_DT(4)
630           WRITE (UNIT_OUT, 1801) &
631              '.SP5','ROP_s (Binary, single precision)',SPX_DT(5)
632           WRITE (UNIT_OUT, 1801) &
633              '.SP6','T_g, T_s (Binary, single precision)',SPX_DT(6)
634           WRITE (UNIT_OUT, 1801) &
635              '.SP7','X_g, X_s (Binary, single precision)',SPX_DT(7)
636           WRITE (UNIT_OUT, 1801) &
637              '.SP8','Theta_m (Binary, single precision)',SPX_DT(8)
638           WRITE (UNIT_OUT, 1801) &
639              '.SP9','User Scalar (Binary, single precision)',SPX_DT(9)
640           WRITE (UNIT_OUT, 1801) &
641              '.SPA','ReactionRates (Binary, single precision)',SPX_DT(10)
642           WRITE (UNIT_OUT, 1801) &
643              '.SPB','K and Epsilon (Binary, single precision)',SPX_DT(11)
644     !
645     !  Print out tolerance values from TOLERANCE.INC
646     !
647           WRITE (UNIT_OUT, 1900)
648           WRITE (UNIT_OUT, 1901) ZERO_EP_S
649           WRITE (UNIT_OUT, 1904) TOL_RESID, TOL_RESID_T, TOL_RESID_X, TOL_DIVERGE
650           WRITE (UNIT_OUT, 1905) TOL_COM
651           IF(NScalar /= 0)WRITE (UNIT_OUT, 1906) TOL_RESID_Scalar
652           IF(K_Epsilon)WRITE (UNIT_OUT, 1907) TOL_RESID_K_Epsilon
653           IF(GRANULAR_ENERGY)WRITE (UNIT_OUT, 1908) TOL_RESID_Th
654     !
655     !  Echo user defined input data
656     !
657           WRITE (UNIT_OUT, '(/,1X,1A1)') CHAR(12)
658           IF (CALL_USR) CALL USR_WRITE_OUT0
659     !
660           RETURN
661      1000 FORMAT(17X,'MM      MM  FFFFFFFFFF    IIIIII    XX      XX',/17X,&
662              'MM      MM  FFFFFFFFFF    IIIIII    XX      XX',/17X,&
663              'MMMM  MMMM  FF              II      XX      XX',/17X,&
664              'MMMM  MMMM  FF              II      XX      XX',/17X,&
665              'MM  MM  MM  FF              II        XX  XX  ',/17X,&
666              'MM  MM  MM  FF              II        XX  XX  ',/17X,&
667              'MM      MM  FFFFFFFF        II          XX    ',/17X,&
668              'MM      MM  FFFFFFFF        II          XX    ',/17X,&
669              'MM      MM  FF              II        XX  XX  ',/17X,&
670              'MM      MM  FF              II        XX  XX  ',/17X,&
671              'MM      MM  FF              II      XX      XX',/17X,&
672              'MM      MM  FF              II      XX      XX',/17X,&
673              'MM      MM  FF            IIIIII    XX      XX',/17X,&
674              'MM      MM  FF            IIIIII    XX      XX',2/20X,&
675              'Multiphase Flow with Interphase eXchanges'/34X,'Version: ',A,/20X,&
676              'Time: ',I2,':',I2,20X,'Date: ',I2,'-',I2,'-',I4)
677      1010 FORMAT(/7X,'Computer : ',A50,/,1X,79('_'))
678      1100 FORMAT(//,3X,'1. RUN CONTROL',/)
679      1101 FORMAT(/7X,'* Model B momentum equations are solved')
680      1102 FORMAT(/7X,'Number of scalars = ', I4,&
681                  /7X,'Scalar No.        Carrier Phase (Phase4Scalar)')
682      1103 FORMAT(/7X, I4,'               ',I4)
683      1104 FORMAT(/7X,'* K and Epsilon equations are solved.')
684      1111 FORMAT(/7X,'* Virtual mass force is applied to momentum equations.')
685      1105 FORMAT(/7X,'* Simonin model is solved')
686      1106 FORMAT(/7X,'* Ahmadi model is solved')
687      1107 FORMAT(/7X,'** Note: When Simonin or Ahmadi model is solved, K-Epsilon', &
688                       ' and granular energy are automatically solved.')
689      1108 FORMAT(/7X,'* Schaeffer frictional model is solved')
690      1109 FORMAT(/7X,'* Savage frictional model is solved')
691      1110 FORMAT(7X,'Run name(RUN_NAME): ',A60)
692      1120 FORMAT(7X,'Brief description of the run (DESCRIPTION) :',/9X,A60)
693      1123 FORMAT(14X,'Kinetic Theory : ',A50)
694      1130 FORMAT(7X,'Units (UNITS) : ',A16)
695      1135 FORMAT(7X,'Start-time (TIME) = ',G12.5,/7X,'Stop_time (TSTOP) = ',G12.5,/7X&
696              ,'Time step (DT) = ',G12.5,/7X,'Max time step (DT_MAX) = ',G12.5,/7X&
697              ,'Min time step (DT_MIN) = ',G12.5,/7X,&
698              'Time step adjustment factor (DT_FAC) = ',G12.5)
699      1136 FORMAT(7X,'* Steady state simulation.')
700      1137 FORMAT(7X,'Type of run (RUN_TYPE) : ',A16)
701      1138 FORMAT(30X,'(Initial conditions from the input (.DAT) file)')
702      1139 FORMAT(30X,'(Initial conditions from the restart (.RES) file)')
703      1140 FORMAT(/7X,'* Gas momentum equation-',A,' is',A,'solved.')
704      1141 FORMAT(/7X,'* Solids-',I2,' momentum equation-',A,' is',A,'solved.')
705      1142 FORMAT(/7X,'* Granular energy equation(s) is solved.')
706      1143 FORMAT(/7X,'* Energy equations are solved.')
707      1144 FORMAT(/7X,'* Energy equations are NOT solved.')
708      1145 FORMAT(/7X,'* Gas Species equations are solved.')
709      1146 FORMAT(/7X,'* Gas Species equations are NOT solved.')
710      1147 FORMAT(/7X,'* Solids-',I2,' Species equations are solved.')
711      1148 FORMAT(/7X,'* Solids-',I2,' Species equations are NOT solved.')
712      1149 FORMAT(/7X,'* User-defined subroutines are',A,'called.')
713     !
714      1150 FORMAT(//,3X,'2. PHYSICAL AND NUMERICAL PARAMETERS',/)
715      1151 FORMAT(7X,'Coefficient of restitution (C_e) = ',G12.5)
716      1152 FORMAT(7X,'Coefficient of friction (C_f) = ',G12.5)
717      1153 FORMAT(7X,'Angle of internal friction (Phi) = ',G12.5)
718      1154 FORMAT(7X,'Angle of wall_particle friction (Phi_w) = ',G12.5)
719      1155 FORMAT(7X,'Default turbulence length scale (L_scale0) = ',G12.5,/7X,&
720              'Maximum turbulent viscosity (MU_gmax) = ',G12.5)
721      1156 FORMAT(7X,'Excluded volume for B-M stress term (V_ex) = ',G12.5)
722      1157 FORMAT(7X,'Reference pressure (P_ref) = ',G12.5,/7X,&
723              'Pressure scale-factor (P_scale) = ',G12.5,/7X,&
724              'Gravitational acceleration (GRAVITY) = ',G12.5)
725      1158 FORMAT(7X,'Under relaxation (UR_FAC) and',&
726              ' Iterations in Leq solver (LEQ_IT):'/,9X,&
727              '                        UR_FAC',2X,'LEQ_IT','  LEQ_METHOD',&
728              '  LEQ_SWEEP', '  LEQ_TOL', '    LEQ_PC', '  DISCRETIZE')
729      1159 FORMAT(9X,&
730              'Fluid cont.  and P_g  = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/9X,&
731              'Solids cont. and P_s  = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/9X,&
732              'U velocity            = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/9X,&
733              'V velocity            = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/9X,&
734              'W velocity            = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/9X,&
735              'Energy                = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/9X,&
736              'Species               = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/9X,&
737              'Granular Energy       = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/9X,&
738              'User scalar           = ',F6.3,2X,I4,6X,A8,5x,A4,4X,G11.4,3X,A4,3X,A12/)
739      1190 FORMAT(7X,1A20,'- C(',I2,') = ',G12.5)
740     !
741      1200 FORMAT(//,3X,'3. GEOMETRY AND DISCRETIZATION',/)
742      1201 FORMAT(7X,'Coordinates: ',1A16/)
743      1202 FORMAT(7X,'Cyclic boundary conditions in ',A,' direction',A)
744      1203 FORMAT(7X,'Pressure drop (DELP_',A,') = ',G12.5)
745      1210 FORMAT(7X,'X-direction cell sizes (DX) and East face locations:')
746      1211 FORMAT(7X,'Minimum value of X, or R (XMIN) =',G12.5)
747      1212 FORMAT(7X,'Number of cells in X, or R, direction (IMAX) = ',I4)
748      1213 FORMAT(7X,'Reactor length in X, or R, direction (XLENGTH) =',G12.5//)
749      1220 FORMAT(7X,'Y-direction cell sizes (DY) and North face locations:')
750      1221 FORMAT(7X,'Number of cells in Y direction (JMAX) = ',I4)
751      1222 FORMAT(7X,'Reactor length in Y direction (YLENGTH) =',G12.5//)
752      1230 FORMAT(7X,'Z-direction cell sizes (DZ) and Top face locations:')
753      1231 FORMAT(7X,'Number of cells in Z, or theta, direction (KMAX) = ',I4)
754      1232 FORMAT(7X,'Reactor length in Z, or theta, direction (ZLENGTH) =',G12.5)
755     !
756      1300 FORMAT(//,3X,'4. GAS PHASE',/)
757      1305 FORMAT(7X,'Gas density (RO_g0) = ',G12.5,&
758              '  (A constant value is used everywhere)')
759      1310 FORMAT(7X,'Viscosity (MU_g0) = ',G12.5,&
760              '  (A constant value is used everywhere)')
761      1315 FORMAT(7X,'Number of gas species (NMAX(0)) = ',I3)
762      1316 FORMAT(7X,'Gas species',5X,'Molecular weight (MW_g)')
763      1317 FORMAT(7X,3X,I3,15X,G12.5)
764      1320 FORMAT(7X,'Average molecular weight (MW_avg) = ',G12.5,&
765              '  (A constant value is used everywhere)')
766     !
767     !
768      1500 FORMAT(//,3X,'6. INITIAL CONDITIONS')
769      1510 FORMAT(/7X,'Initial condition no : ',I4)
770      1520 FORMAT(9X,39X,' Specified  ',5X,' Simulated  ',/9X,&
771              'X coordinate of west face   (IC_X_w) = ',G12.5,5X,G12.5/,9X,&
772              'X coordinate of east face   (IC_X_e) = ',G12.5,5X,G12.5/,9X,&
773              'Y coordinate of south face  (IC_Y_s) = ',G12.5,5X,G12.5/,9X,&
774              'Y coordinate of north face  (IC_Y_n) = ',G12.5,5X,G12.5/,9X,&
775              'Z coordinate of bottom face (IC_Z_b) = ',G12.5,5X,G12.5/,9X,&
776              'Z coordinate of top face    (IC_Z_t) = ',G12.5,5X,G12.5)
777      1530 FORMAT(9X,'I index of cell at west   (IC_I_w) = ',I4,/,9X,&
778              'I index of cell at east   (IC_I_e) = ',I4,/,9X,&
779              'J index of cell at south  (IC_J_s) = ',I4,/,9X,&
780              'J index of cell at north  (IC_J_n) = ',I4,/,9X,&
781              'K index of cell at bottom (IC_K_b) = ',I4,/,9X,&
782              'K index of cell at top    (IC_K_t) = ',I4)
783      1540 FORMAT(9X,'Void fraction (IC_EP_g) = ',G12.5)
784      1541 FORMAT(9X,'Gas pressure (IC_P_g) = ',G12.5)
785      1542 FORMAT(9X,'Gas temperature (IC_T_g) = ',G12.5)
786      1543 FORMAT(9X,'Gas species',5X,'Mass fraction (IC_X_g)')
787      1544 FORMAT(9X,3X,I3,15X,G12.5)
788      1545 FORMAT(9X,'Gas radiation coefficient   (IC_GAMA_Rg) = ',G12.5,/,9X,&
789              'Gas radiation temperature   (IC_T_Rg) = ',G12.5)
790      1550 FORMAT(9X,'X-component of gas velocity (IC_U_g) = ',G12.5,/9X,&
791              'Y-component of gas velocity (IC_V_g) = ',G12.5,/9X,&
792              'Z-component of gas velocity (IC_W_g) = ',G12.5)
793      1560 FORMAT(9X,'Solids phase-',I2,' Density x Volume fr. (IC_ROP_s) = ',G12.5)
794      1561 FORMAT(9X,'Solids phase-',I2,' temperature (IC_T_s) = ',G12.5)
795      1563 FORMAT(9X,'Solids-',I2,' species',5X,'Mass fraction (IC_X_s)')
796      1564 FORMAT(9X,3X,I3,20X,G12.5)
797      1565 FORMAT(9X,'Solids phase-',I2,' radiation coefficient (IC_GAMA_Rs)',' =',&
798              G12.5,/9X,'Solids phase-',I2,' radiation temperature (IC_T_Rs) =',&
799              G12.5)
800      1570 FORMAT(9X,'X-component of solids phase-',I2,' velocity (IC_U_s) =',G12.5,&
801              /9X,'Y-component of solids phase-',I2,' velocity (IC_V_s) =',G12.5,/9X&
802              ,'Z-component of solids phase-',I2,' velocity (IC_W_s) =',G12.5)
803      1574 FORMAT(9X,'Solids pressure (IC_P_star) = ',G12.5)
804      1575 FORMAT(9X,'Turbulence length scale (IC_L_scale) = ',G12.5)
805     !
806      1600 FORMAT(//,3X,'7. BOUNDARY CONDITIONS')
807      1601 FORMAT(/7X,'Average value of ',A,G12.5)
808      1602 FORMAT(/7X,'Average value of ',A,I2,A,G12.5)
809      1610 FORMAT(/7X,'Boundary condition no : ',I4)
810      1611 FORMAT(9X,'Type of boundary condition : ',A16)
811      1612 FORMAT(11X,'(Inlet with specified gas and solids mass flux)')
812      1613 FORMAT(11X,'(Outlet with specified gas and solids mass flux)')
813      1614 FORMAT(11X,'(Inlet with specified gas pressure)')
814      1615 FORMAT(11X,'(Outlet with specified gas pressure)')
815      1616 FORMAT(11X,'(Gradients of parallel velocity components are zero)')
816      1617 FORMAT(11X,'(Velocity is zero at wall)')
817      1618 FORMAT(11X,'(Partial slip condition at wall)')
818      1619 FORMAT(11X,'(Outflow condition)')
819      1620 FORMAT(9X,39X,' Specified  ',5X,' Simulated  ',/9X,&
820              'X coordinate of west face   (BC_X_w) = ',G12.5,5X,G12.5/,9X,&
821              'X coordinate of east face   (BC_X_e) = ',G12.5,5X,G12.5/,9X,&
822              'Y coordinate of south face  (BC_Y_s) = ',G12.5,5X,G12.5/,9X,&
823              'Y coordinate of north face  (BC_Y_n) = ',G12.5,5X,G12.5/,9X,&
824              'Z coordinate of bottom face (BC_Z_b) = ',G12.5,5X,G12.5/,9X,&
825              'Z coordinate of top face    (BC_Z_t) = ',G12.5,5X,G12.5)
826      1630 FORMAT(9X,'I index of cell at west   (BC_I_w) = ',I4,/,9X,&
827              'I index of cell at east   (BC_I_e) = ',I4,/,9X,&
828              'J index of cell at south  (BC_J_s) = ',I4,/,9X,&
829              'J index of cell at north  (BC_J_n) = ',I4,/,9X,&
830              'K index of cell at bottom (BC_K_b) = ',I4,/,9X,&
831              'K index of cell at top    (BC_K_t) = ',I4)
832      1635 FORMAT(9X,'Boundary area = ',G12.5)
833      1640 FORMAT(9X,'Void fraction (BC_EP_g) = ',G12.5)
834      1641 FORMAT(9X,'Gas pressure (BC_P_g) = ',G12.5)
835      1642 FORMAT(9X,'Gas temperature (BC_T_g) = ',G12.5)
836      1643 FORMAT(9X,'Gas species',5X,'Mass fraction (BC_X_g)')
837      1644 FORMAT(9X,3X,I3,15X,G12.5)
838      1648 FORMAT(9X,'Gas mass flow rate (BC_MASSFLOW_g) = ',G12.5)
839      1649 FORMAT(9X,'Gas volumetric flow rate (BC_VOLFLOW_g) = ',G12.5)
840      1650 FORMAT(9X,'X-component of gas velocity (BC_U_g) = ',G12.5)
841      1651 FORMAT(9X,'Y-component of gas velocity (BC_V_g) = ',G12.5)
842      1652 FORMAT(9X,'Z-component of gas velocity (BC_W_g) = ',G12.5)
843      1655 FORMAT(9X,'Initial interval when jet vel= BC_Jet_g0 (BC_DT_0) = ',G12.5,/9X,&
844              'Initial jet velocity (BC_Jet_g0) = ',G12.5,/9X,&
845              'Interval when jet vel= BC_Jet_gl (BC_DT_l) = ',G12.5,/9X,&
846              'Low value of jet velocity (BC_Jet_gl) = ',G12.5,/9X,&
847              'Interval when jet vel = BC_Jet_gh (BC_DT_h) = ',G12.5,/9X,&
848              'High value of jet velocity (BC_Jet_gh) = ',G12.5)
849      1656 FORMAT(9X,'Interval for averaging outflow rates= (BC_DT_0) = ',G12.5)
850      1660 FORMAT(9X,'Solids phase-',I2,' Density x Volume fr. (BC_ROP_s) = ',G12.5)
851      1661 FORMAT(9X,'Solids phase-',I2,' temperature (BC_T_s) = ',G12.5)
852     
853      1663 FORMAT(9X,'Solids-',I2,' species',5X,'Mass fraction (BC_X_s)')
854      1664 FORMAT(9X,3X,I3,20X,G12.5)
855      1668 FORMAT(9X,'Solids phase-',I2,' mass flow rate (BC_MASSFLOW_s) =',G12.5)
856      1669 FORMAT(9X,'Solids phase-',I2,' volumetric flow rate (BC_VOLFLOW_s) =',&
857              G12.5)
858      1670 FORMAT(9X,'X-component of solids phase-',I2,' velocity (BC_U_s) =',G12.5)
859      1671 FORMAT(9X,'Y-component of solids phase-',I2,' velocity (BC_V_s) =',G12.5)
860      1672 FORMAT(9X,'Z-component of solids phase-',I2,' velocity (BC_W_s) =',G12.5)
861      1675 FORMAT(9X,'Partial slip coefficient   (BC_hw_g) = ',G12.5,/,9X,&
862              'Slip velociity U at wall   (BC_Uw_g) = ',G12.5,/,9X,&
863              'Slip velociity V at wall   (BC_Vw_g) = ',G12.5,/,9X,&
864              'Slip velociity W at wall   (BC_Ww_g) = ',G12.5)
865      1676 FORMAT(9X,'Solids phase: ',I2,/,11X,&
866              'Partial slip coefficient   (BC_hw_s) = ',G12.5,/,11X,&
867              'Slip velociity U at wall   (BC_Uw_s) = ',G12.5,/,11X,&
868              'Slip velociity V at wall   (BC_Vw_s) = ',G12.5,/,11X,&
869              'Slip velociity W at wall   (BC_Ww_s) = ',G12.5)
870     !
871      1700 FORMAT(//,3X,'8. INTERNAL SURFACES')
872      1710 FORMAT(/7X,'Internal surface no : ',I4)
873      1711 FORMAT(9X,'Type of internal surface : ',A16)
874      1712 FORMAT(11X,'(No gas or solids flow through the surface)')
875      1713 FORMAT(11X,'(Only gas flows through the surface)')
876      1720 FORMAT(9X,39X,' Specified  ',5X,' Simulated  ',/9X,&
877              'X coordinate of west face   (IS_X_w) = ',G12.5,5X,G12.5/,9X,&
878              'X coordinate of east face   (IS_X_e) = ',G12.5,5X,G12.5/,9X,&
879              'Y coordinate of south face  (IS_Y_s) = ',G12.5,5X,G12.5/,9X,&
880              'Y coordinate of north face  (IS_Y_n) = ',G12.5,5X,G12.5/,9X,&
881              'Z coordinate of bottom face (IS_Z_b) = ',G12.5,5X,G12.5/,9X,&
882              'Z coordinate of top face    (IS_Z_t) = ',G12.5,5X,G12.5)
883      1730 FORMAT(9X,'I index of cell at west   (IS_I_w) = ',I4,/,9X,&
884              'I index of cell at east   (IS_I_e) = ',I4,/,9X,&
885              'J index of cell at south  (IS_J_s) = ',I4,/,9X,&
886              'J index of cell at north  (IS_J_n) = ',I4,/,9X,&
887              'K index of cell at bottom (IS_K_b) = ',I4,/,9X,&
888              'K index of cell at top    (IS_K_t) = ',I4)
889      1740 FORMAT(9X,'Permeability (IS_PC1) = ',G12.5)
890      1741 FORMAT(9X,'Inertial resistance factor (IS_PC2) = ',G12.5)
891      1742 FORMAT(9X,'Solids phase-',I2,' Velocity (IS_VEL_s) = ',G12.5)
892     !
893      1800 FORMAT(//,3X,'9. OUTPUT DATA FILES:',/7X,'Extension',T18,&
894              'Description',T59,'Interval for writing')
895      1801 FORMAT(7X,A4,T18,A,T61,G12.5)
896     !
897      1900 FORMAT(//,3X,'10. TOLERANCES',/7X,&
898              'The following values are specified in the file TOLERANCE.INC.')
899      1901 FORMAT(/7X,'Minimum value of EP_s tracked (ZERO_EP_s) = ',G12.5)
900      1904 FORMAT(7X,'Maximum average residual (TOL_RESID) = ',G12.5,/7X,&
901              'Maximum average residual (TOL_RESID_T) = ',G12.5,/7X,&
902              'Maximum average residual (TOL_RESID_X) = ',G12.5,/7X,&
903              'Minimum residual at divergence (TOL_DIVERGE) = ',G12.5)
904      1905 FORMAT(7X,'Tolerance for species and energy balances (TOL_COM) = ',G12.5)
905      1906 FORMAT(7X,'Tolerance for scalar mass balances (TOL_RESID_Scalar) = ',G12.5)
906      1907 FORMAT(7X,'Tolerance for K-Epsilon balances (TOL_RESID_K_Epsilon) = ',G12.5)
907      1908 FORMAT(7X,'Tolerance for Granular Temp.  balances (TOL_RESID_Th) = ',G12.5)
908     !
909     
910         CONTAINS
911     
912     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
913     !                                                                      C
914     !  Module name: LOCATION(L2, XMIN, DX)                                 C
915     !  Purpose: Find the cell center location in X, Y, or Z direction for  C
916     !           the given index L2.                                        C
917     !                                                                      C
918     !  Author: M. Syamlal                                 Date: 01-SEP-92  C
919     !  Reviewer: M. Syamlal                               Date: 11-DEC-92  C
920     !                                                                      C
921     !  Literature/Document References:                                     C
922     !                                                                      C
923     !  Variables referenced: None                                          C
924     !  Variables modified: None                                            C
925     !                                                                      C
926     !  Local variables: L                                                  C
927     !                                                                      C
928     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
929     !
930           DOUBLE PRECISION FUNCTION LOCATION (L2, XMIN, DX)
931     !...Translated by Pacific-Sierra Research VAST-90 2.06G5  12:17:31  12/09/98
932     !...Switches: -xf
933     !
934     !-----------------------------------------------
935     !   M o d u l e s
936     !-----------------------------------------------
937           USE param
938           USE param1
939           IMPLICIT NONE
940     !-----------------------------------------------
941     !   D u m m y   A r g u m e n t s
942     !-----------------------------------------------
943     !
944     !                      Index for which the location is required
945           INTEGER          L2
946     !
947     !                      Starting location of the coordinate
948           DOUBLE PRECISION XMIN
949     !
950     !                      Cell sizes (DX, DY, or DZ)
951     !//EFD Nov/11 avoid using dx(*)
952     !//      DOUBLE PRECISION DX(*)
953           DOUBLE PRECISION DX(0:L2)
954     !
955     !  Local variables
956     !
957     !                      Index
958           INTEGER          L
959     !-----------------------------------------------
960     !
961           LOCATION = XMIN - HALF*DX(1)
962           L = 2
963           IF (L2 - 1 > 0) THEN
964     
965     !//EFD      since indexing of dx starts from 0
966     !//         using DX(1:(L2-1)) instead of DX(:,L2)
967     !//         LOCATION = LOCATION + SUM(HALF*(DX(:L2-1)+DX(2:L2)))
968     
969              LOCATION = LOCATION + SUM(HALF*(DX(1:(L2-1))+DX(2:L2)))
970              L = L2 + 1
971     
972           ENDIF
973           RETURN
974           END FUNCTION LOCATION
975     
976           END SUBROUTINE WRITE_OUT0
977     
978           SUBROUTINE WRITE_FLAGS
979           USE param
980           USE param1
981           USE funits
982           USE geometry
983           USE indices
984           USE compar         !//d
985           USE mpi_utility    !//d
986           USE sendrecv    !//d
987           USE functions
988           IMPLICIT NONE
989           integer ijk
990     !
991           character(LEN=3), allocatable :: array1(:)   !//d
992           character(LEN=4), dimension(:), allocatable :: array2, array3
993     
994           if (myPE .eq. PE_IO) then
995              allocate (array1(ijkmax3))
996              allocate (array2(dimension_3))
997              allocate (array3(ijkmax3))
998           else
999              allocate (array1(1))
1000              allocate (array2(dimension_3))
1001              allocate (array3(1))
1002           end if
1003     
1004     !write(*,*) 'ijkmax3', ijkmax3, dimension_3
1005     
1006     !//SP Filling the processor ghost layer with the correct values
1007     
1008           call gather (icbc_flag,array1,PE_IO)
1009           call scatter (icbc_flag,array1,PE_IO)
1010     
1011     !
1012     !  Superimpose internal surface flags on Initial and boundary condition flags
1013     !
1014           DO ijk = IJKSTART3, IJKEND3
1015             array2(ijk) = '    '
1016             array2(ijk)(1:3) = icbc_flag(ijk)(1:3)
1017             IF (IP_AT_E(IJK)) THEN
1018                array2(IJK)(4:4) = 'E'
1019             ELSE IF (SIP_AT_E(IJK)) THEN
1020                array2(IJK)(4:4) = 'e'
1021             ENDIF
1022     !
1023             IF (IP_AT_N(IJK)) THEN
1024                array2(IJK)(4:4) = 'N'
1025             ELSE IF (SIP_AT_N(IJK)) THEN
1026                array2(IJK)(4:4) = 'n'
1027             ENDIF
1028     !
1029             IF (IP_AT_T(IJK)) THEN
1030                array2(IJK)(4:4) = 'T'
1031             ELSE IF (SIP_AT_T(IJK)) THEN
1032                array2(IJK)(4:4) = 't'
1033             ENDIF
1034           ENDDO
1035           call gather (array2,array3,PE_IO)
1036     
1037           if(myPE.eq.PE_IO) then
1038             WRITE (UNIT_OUT, 2000)
1039             CALL OUT_ARRAY_C (array3, 'BC/IC condition flags')
1040             WRITE (UNIT_OUT, *)
1041           ENDIF
1042     
1043     
1044           deallocate (array1)
1045           deallocate (array2)
1046           deallocate (array3)
1047     !
1048      2000 FORMAT(//,3X,'11. INITIAL AND BOUNDARY CONDITION FLAGS',/7X,&
1049              'The initial and boundary conditions specified are shown in',/7X,&
1050              'the following map. Each computational cell is represented',/7X,&
1051              'by a string of three characters.  The first character',/7X,&
1052              'represents the type of cell, and the last two characters',/7X,&
1053              'give a number that identifies a boundary or initial condi-',/7X,&
1054              'tion.  For example, .02 indicates a cell where Initial',/7X,&
1055              'Condition No. 2 will be specified. Only the last two digits'/7X,&
1056              'are written.  Hence, for example, Condition No. 12, 112, 212'/7X,&
1057              'etc. will be represented only as 12.',/7X,&
1058              '  First Character       Description'/7X,&
1059              '       .                Initial condition'/7X,&
1060              '       W                No slip wall'/7X,&
1061              '       S                Free-slip wall'/7X,&
1062              '       s                Partial-slip wall'/7X,&
1063              '       c                Cyclic boundary'/7X,&
1064              '       C                Cyclic boundary with pressure drop'/7X,&
1065              '       I                Specified mass-flux inflow cell'/7X,&
1066              '       O                Outflow cell'/7X,&
1067              '       p                Specified pressure inflow cell'/7X,&
1068              '       P                Specified pressure outflow cell'/7X,&
1069              '                                                       '/7X,&
1070              'Internal surfaces at East, North or Top of each cell is',/7X,&
1071              'is represented by the following letters to the right of the',/7X,&
1072              'three-character string:',/7X,&
1073              '  Side          Impermeable           Semipermeable',/7X,&
1074              '  East             E                       e       ',/7X,&
1075              '  North            N                       n       ',/7X,&
1076              '  Top              T                       t       ',/7X,&
1077              'For cells with internal surfaces on more than one side',/7X,&
1078              'the characters will be over-written in the above order',/1X,A1)
1079              RETURN
1080              END SUBROUTINE WRITE_FLAGS
1081     
1082     
1083