File: N:\mfix\model\write_out1.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2     !                                                                      C
3     !  Module name: WRITE_OUT1                                             C
4     !  Purpose: write out the field variables to standard output           C
5     !                                                                      C
6     !  Author: P. Nicoletti                               Date: 03-DEC-91  C
7     !  Reviewer: W. Rogers, M. Syamlal, S. Venkatesan     Date: 31-JAN-92  C
8     !                                                                      C
9     !  Revision Number:                                                    C
10     !  Purpose:                                                            C
11     !  Author:                                            Date: dd-mmm-yy  C
12     !  Reviewer:                                          Date: dd-mmm-yy  C
13     !                                                                      C
14     !  Literature/Document References:                                     C
15     !                                                                      C
16     !  Variables referenced: TIME, P_g, EP_g, RO_g, ROP_g, MMAX, ROP_s     C
17     !                        T_g, T_s, U_g, V_g, W_g, U_s, V_s, W_s C
18     !  Variables modified: None                                            C
19     !                                                                      C
20     !  Local variables: LC, N                                              C
21     !                                                                      C
22     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
23     !
24           SUBROUTINE WRITE_OUT1
25     !...Translated by Pacific-Sierra Research VAST-90 2.06G5  12:17:31  12/09/98
26     !...Switches: -xf
27     !-----------------------------------------------
28     !   M o d u l e s
29     !-----------------------------------------------
30           USE param
31           USE param1
32           USE physprop
33           USE fldvar
34           USE run
35           USE scalars
36           USE funits
37           USE rxns
38           USE compar             !//d
39           USE mpi_utility        !//d
40           IMPLICIT NONE
41     !-----------------------------------------------
42     !   G l o b a l   P a r a m e t e r s
43     !-----------------------------------------------
44     !-----------------------------------------------
45     !   L o c a l   P a r a m e t e r s
46     !-----------------------------------------------
47     !-----------------------------------------------
48     !   L o c a l   V a r i a b l e s
49     !-----------------------------------------------
50           INTEGER :: LC, NN
51     !-----------------------------------------------
52     !
53           double precision, allocatable :: array1(:)    !//d
54     !
55     
56     
57           if (myPE == PE_IO) then
58              allocate (array1(ijkmax3))     !//d
59           else
60              allocate (array1(1))           !//d
61           end if
62     !
63     !             form feed character = CHAR(12)
64     !
65           if (myPE == PE_IO) WRITE (UNIT_OUT, 1000) CHAR(12), TIME
66     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
67           call gather (P_g,array1,root)    !//
68     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
69           if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'P_g')
70     !
71           if (myPE == PE_IO) WRITE (UNIT_OUT, 1050) CHAR(12), TIME
72     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
73           call gather (P_star,array1,root)    !//
74     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
75           if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'P_star')
76     !
77           if (myPE == PE_IO) WRITE (UNIT_OUT, 1100) CHAR(12), TIME
78     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
79           call gather (EP_g,array1,root)    !//
80     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
81           if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'EP_g')
82     !
83           if (myPE == PE_IO) WRITE (UNIT_OUT, 1200) CHAR(12), TIME
84     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
85           call gather (RO_g,array1,root)    !//
86     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
87           if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'RO_g')
88     !
89           DO LC = 1, MMAX
90              if (myPE == PE_IO) WRITE (UNIT_OUT, 1400) CHAR(12), LC, TIME
91     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
92              call gather (ROP_s(:,LC),array1,root)    !//
93     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
94              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'ROP_s')
95              if (LC == 2) then
96                 if (myPE == PE_IO) WRITE (UNIT_OUT, *) 'solid phase ', LC, 'at t= ', TIME
97                 call gather (RO_S(:,LC),array1,root)
98                 if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'RO_S')
99                 call gather (ERR_ARRAY(:,LC),array1,root)
100                 if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'ERR_EPS')
101              endif
102           END DO
103           if (myPE == PE_IO) WRITE (UNIT_OUT, 1500) CHAR(12), TIME
104     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
105           call gather (T_g,array1,root)    !//
106     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
107           if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'T_g')
108     !
109           DO LC = 1, MMAX
110              if (myPE == PE_IO) WRITE (UNIT_OUT, 1600) CHAR(12), LC, TIME
111     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
112              call gather (T_s(:,LC),array1,root)    !//
113     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
114              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'T_s')
115           END DO
116           IF (SPECIES_EQ(0)) THEN
117              DO NN = 1, NMAX(0)
118                 if (myPE == PE_IO) WRITE (UNIT_OUT, 1710) CHAR(12), NN, TIME
119     !           call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
120                 call gather (X_g(:,NN),array1,root)    !//
121     !           call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
122                 if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'X_g')
123              END DO
124           ENDIF
125     !
126           DO LC = 1, MMAX
127              IF (SPECIES_EQ(LC)) THEN
128                 DO NN = 1, NMAX(LC)
129                    if (myPE == PE_IO) WRITE (UNIT_OUT, 1720) CHAR(12), LC, NN, TIME
130     !              call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
131                    call gather (X_s(:,LC,NN),array1,root)    !//
132     !              call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
133                    if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'X_s')
134                 END DO
135              ENDIF
136           END DO
137           if (myPE == PE_IO) WRITE (UNIT_OUT, 1800) CHAR(12), TIME
138     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
139           call gather (U_g,array1,root)    !//
140     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
141     !//SP - Changed U_G to array1
142           if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'U_g')
143     !
144           if (myPE == PE_IO) WRITE (UNIT_OUT, 1900) CHAR(12), TIME
145     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
146           call gather (V_g,array1,root)    !//
147     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
148     !//SP - Changed V_G to array1
149           if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'V_g')
150     !
151           if (myPE == PE_IO) WRITE (UNIT_OUT, 2000) CHAR(12), TIME
152     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
153           call gather (W_g,array1,root)    !//
154     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
155     !//SP - Changed W_G to array1
156           if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'W_g')
157     !
158           DO LC = 1, MMAX
159              if (myPE == PE_IO) WRITE (UNIT_OUT, 2100) CHAR(12), LC, TIME
160     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
161              call gather (U_s(:,LC),array1,root)    !//
162     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
163              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'U_s')
164     !
165              if (myPE == PE_IO) WRITE (UNIT_OUT, 2200) CHAR(12), LC, TIME
166     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
167              call gather (V_s(:,LC),array1,root)    !//
168     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
169              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'V_s')
170     !
171              if (myPE == PE_IO) WRITE (UNIT_OUT, 2300) CHAR(12), LC, TIME
172     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
173              call gather (W_s(:,LC),array1,root)    !//
174     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
175              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'W_s')
176     !
177     !         IF(GRANULAR_ENERGY)THEN
178              if (myPE == PE_IO) WRITE (UNIT_OUT, 2400) CHAR(12), LC, TIME
179     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
180              call gather (THETA_m(:,LC),array1,root)    !//
181     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
182              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'Theta_m')
183           END DO
184           if (myPE == PE_IO) WRITE (UNIT_OUT, '(/1X,1A1)') CHAR(12)
185           IF (CALL_USR) CALL USR_WRITE_OUT1
186     !     call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
187     
188           IF(NScalar /= 0) THEN
189             DO LC = 1, NScalar
190              if (myPE == PE_IO) WRITE (UNIT_OUT, 2500) CHAR(12), LC, TIME
191     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
192              call gather (Scalar(:,LC),array1,root)    !//
193     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
194              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'Scalar')
195             END DO
196           ENDIF
197     
198           IF(K_Epsilon) THEN
199              if (myPE == PE_IO) WRITE (UNIT_OUT, 2600) CHAR(12), TIME
200     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
201              call gather (K_Turb_G,array1,root)    !//
202     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
203              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'K_Turb_G')
204              call gather (E_Turb_G,array1,root)    !//
205              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'E_Turb_G')
206           ENDIF
207           IF(nRR /= 0) THEN
208             DO LC = 1, nRR
209              if (myPE == PE_IO) WRITE (UNIT_OUT, 2500) CHAR(12), LC, TIME
210     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
211              call gather (ReactionRates(:,LC),array1,root)    !//
212     !        call MPI_Barrier(MPI_COMM_WORLD,mpierr)  !//PAR_I/O enforce barrier here
213              if (myPE == PE_IO) CALL OUT_ARRAY (array1, 'RRates')
214             END DO
215           ENDIF
216     
217           deallocate(array1)  !//
218     
219     !
220     !             form feed character = CHAR(12)
221           if (myPE == PE_IO) WRITE (UNIT_OUT, '(/1X,1A1)') CHAR(12)
222           IF (CALL_USR) CALL USR_WRITE_OUT1
223           RETURN
224      1000 FORMAT(1X,A1,/5X,'--- Gas pressure (P_g) at time ',G12.5,' ---',2/)
225      1050 FORMAT(1X,A1,/5X,'--- Solids pressure (P_star) at time ',G12.5,' ---',2/)
226      1100 FORMAT(1X,A1,/5X,'--- Void fraction (EP_g) at time ',G12.5,' ---',2/)
227      1200 FORMAT(1X,A1,/5X,'--- Gas density (RO_g) at time ',G12.5,' ---',2/)
228      1400 FORMAT(1X,A1,/5X,'--- Solids Phase-',I1,' density x volume',&
229              ' fraction (ROP_s) at time ',G12.5,' ---',2/)
230      1500 FORMAT(1X,A1,/5X,'--- Gas temperature (T_g) at time ',G12.5,' ---',2/)
231      1600 FORMAT(1X,A1,/5X,'--- Solids Phase-',I1,' temperature (T_s)',' at time ',&
232              G12.5,' ---',2/)
233      1710 FORMAT(1X,A1,/5X,'--- Mass fraction of gas species (X_g) ',&
234              I2,' at time ',&
235              G12.5,' ---',2/)
236      1720 FORMAT(1X,A1,/5X,'--- Mass fraction of solids-',I1,' species (X_s)',I2,&
237              ' at time ',G12.5,' ---',2/)
238      1800 FORMAT(1X,A1,/5X,'--- X-component of gas velocity (U_g) at time ',G12.5,&
239              ' ---',2/)
240      1900 FORMAT(1X,A1,/5X,'--- Y-component of gas velocity (V_g) at time ',G12.5,&
241              ' ---',2/)
242      2000 FORMAT(1X,A1,/5X,'--- Z-component of gas velocity (W_g) at time ',G12.5,&
243              ' ---',2/)
244      2100 FORMAT(1X,A1,/5X,'--- X-component of Solids Phase-',I1,&
245              ' velocity (U_s) at time ',G12.5,' ---',2/)
246      2200 FORMAT(1X,A1,/5X,'--- Y-component of Solids Phase-',I1,&
247              ' velocity (V_s) at time ',G12.5,' ---',2/)
248      2300 FORMAT(1X,A1,/5X,'--- Z-component of Solids Phase-',I1,&
249              ' velocity (W_s) at time ',G12.5,' ---',2/)
250      2400 FORMAT(1X,A1,/5X,'--- Granular temperature of Solids Phase-',I1,&
251              ' (Theta_m) at time ',G12.5,' ---',2/)
252      2500 FORMAT(1X,A1,/5X,'--- Scalar Field-',I2, ' (Scalar) at time ',G12.5,' ---',2/)
253      2600 FORMAT(1X,A1,/5X,'--- Turbulence Field-', ' (K-Epsilon) at time ',G12.5,' ---',2/)
254           END SUBROUTINE WRITE_OUT1
255