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