File: RELATIVE:/../../../mfix.git/model/des/write_res0_des.f

1     !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvc
2     !
3     !  module name: des_write_restart
4     !  purpose: writing des data for restart
5     !
6     !  Author : Pradeep G
7     !  Purpose : Reads either single restart file or multiple restart files
8     !            (based on bdist_io) flag
9     !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^c
10           subroutine WRITE_RES0_DES
11     
12           use param1
13           use compar
14           use discretelement
15           use run
16           use des_bc
17           use des_rxns
18           use des_thermo
19           use mfix_pic, only: MPPIC
20           use mfix_pic, only: DES_STAT_WT
21     
22           use error_manager
23           use write_res1_des
24           use mpi_utility
25     
26           implicit none
27     !-----------------------------------------------
28     ! local variables
29     !-----------------------------------------------
30           INTEGER :: LC1
31           INTEGER :: lNEXT_REC
32           INTEGER :: lDIMN
33     
34           DOUBLE PRECISION :: VERSION
35     
36     ! Set the version of the DES RES file.
37           VERSION = 1.1
38     
39     ! Set the output dimension.
40           lDIMN = merge(2,3,NO_K)
41     
42           CALL INIT_WRITE_RES_DES(trim(RUN_NAME), VERSION, lNEXT_REC)
43     
44           CALL WRITE_RES_DES(lNEXT_REC, VTP_FINDEX)
45           CALL WRITE_RES_DES(lNEXT_REC, TECPLOT_FINDEX)
46           CALL WRITE_RES_DES(lNEXT_REC, DTSOLID)
47     
48           DO LC1 = 1, lDIMN
49              CALL WRITE_RES_pARRAY(lNEXT_REC, DES_POS_NEW(LC1,:))
50           ENDDO
51     
52           CALL WRITE_RES_pARRAY(lNEXT_REC, iGLOBAL_ID)
53     
54           CALL WRITE_RES_pARRAY(lNEXT_REC, particle_state)
55     
56           DO LC1 = 1, lDIMN
57              CALL WRITE_RES_pARRAY(lNEXT_REC, DES_VEL_NEW(LC1,:))
58           ENDDO
59     
60           DO LC1 = 1, merge(1,3,NO_K)
61              CALL WRITE_RES_pARRAY(lNEXT_REC, OMEGA_NEW(LC1,:))
62           ENDDO
63     
64           CALL WRITE_RES_pARRAY(lNEXT_REC, DES_RADIUS)
65           CALL WRITE_RES_pARRAY(lNEXT_REC, RO_SOL)
66     
67           IF(MPPIC) &
68              CALL WRITE_RES_pARRAY(lNEXT_REC, DES_STAT_WT)
69     
70           IF(ENERGY_EQ) &
71              CALL WRITE_RES_pARRAY(lNEXT_REC, DES_T_s_NEW)
72     
73           IF(ANY_SPECIES_EQ) THEN
74              DO LC1=1, DIMENSION_N_S
75                 CALL WRITE_RES_pARRAY(lNEXT_REC, DES_X_s(:,LC1))
76              ENDDO
77           ENDIF
78     
79     ! DES User defined variable :: added for VERSION>= 1.1
80           CALL WRITE_RES_DES(lNEXT_REC, DES_USR_VAR_SIZE)
81           DO LC1=1,DES_USR_VAR_SIZE
82              CALL WRITE_RES_pARRAY(lNEXT_REC, DES_USR_VAR(LC1,:))
83           ENDDO
84     
85           CALL WRITE_RES_cARRAY(lNEXT_REC, NEIGHBORS(:), pLOC2GLB=.TRUE.)
86           CALL WRITE_RES_cARRAY(lNEXT_REC, NEIGHBOR_INDEX(:), pLOC2GLB=.TRUE.)
87     
88           DO LC1=1, lDIMN
89              CALL WRITE_RES_cARRAY(lNEXT_REC,PFT_NEIGHBOR(LC1,:))
90           ENDDO
91     
92           CALL WRITE_RES_DES(lNEXT_REC, DEM_BCMI)
93           DO LC1=1, DEM_BCMI
94              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI_TIME(LC1))
95              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%VACANCY)
96              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%OCCUPANTS)
97              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%WINDOW)
98              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%OFFSET)
99              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%L)
100              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%W(:))
101              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%H(:))
102              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%P(:))
103              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%Q(:))
104           ENDDO
105     
106           CALL FINL_WRITE_RES_DES
107     
108           RETURN
109           END SUBROUTINE WRITE_RES0_DES
110