File: N:\mfix\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 compar
13           use des_bc
14           use des_rxns
15           use des_thermo
16           use discretelement
17           use error_manager
18           use mfix_pic, only: DES_STAT_WT
19           use mfix_pic, only: MPPIC
20           use mpi_utility
21           use param, only: dimension_n_s
22           use param1
23           use run
24           use write_res1_des
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)
72     
73           IF(ANY_SPECIES_EQ) THEN
74              CALL WRITE_RES_pARRAY(lNEXT_REC, PIJK(:,5))
75              DO LC1=1, DIMENSION_N_S
76                 CALL WRITE_RES_pARRAY(lNEXT_REC, DES_X_s(:,LC1))
77              ENDDO
78           ENDIF
79     
80     ! DES User defined variable :: added for VERSION>= 1.1
81           CALL WRITE_RES_DES(lNEXT_REC, DES_USR_VAR_SIZE)
82           DO LC1=1,DES_USR_VAR_SIZE
83              CALL WRITE_RES_pARRAY(lNEXT_REC, DES_USR_VAR(LC1,:))
84           ENDDO
85     
86     
87           IF(.NOT.MPPIC) THEN
88              CALL WRITE_RES_cARRAY(lNEXT_REC, NEIGHBORS(:), pLOC2GLB=.TRUE.)
89              CALL WRITE_RES_cARRAY(lNEXT_REC, NEIGHBOR_INDEX(:), pLOC2GLB=.TRUE.)
90           ENDIF
91     
92           DO LC1=1, lDIMN
93              CALL WRITE_RES_cARRAY(lNEXT_REC,PFT_NEIGHBOR(LC1,:))
94           ENDDO
95     
96           CALL WRITE_RES_DES(lNEXT_REC, DEM_BCMI)
97           DO LC1=1, DEM_BCMI
98              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI_TIME(LC1))
99              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%VACANCY)
100              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%OCCUPANTS)
101              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%WINDOW)
102              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%OFFSET)
103              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%L)
104              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%W(:))
105              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%H(:))
106              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%P(:))
107              CALL WRITE_RES_DES(lNEXT_REC, DEM_MI(LC1)%Q(:))
108           ENDDO
109     
110           CALL FINL_WRITE_RES_DES
111     
112           RETURN
113           END SUBROUTINE WRITE_RES0_DES
114