File: RELATIVE:/../../../mfix.git/model/des/read_res0_des.f
1
2
3
4
5
6
7 SUBROUTINE READ_RES0_DES
8
9 use cdist
10 use compar
11 use des_allocate
12 use des_bc
13 use des_rxns
14 use des_thermo
15 use desmpi
16 use discretelement
17 use error_manager
18 use machine
19 use mfix_pic, only: MPPIC, DES_STAT_WT
20 use mpi_utility
21 use param1
22 use read_res1_des
23 use run
24
25 implicit none
26
27 INTEGER :: LC1, LC2
28 INTEGER :: lDIMN, lNEXT_REC
29
30 DOUBLE PRECISION :: VERSION
31
32 lDIMN = merge(2,3,NO_K)
33
34 CALL INIT_READ_RES_DES(trim(RUN_NAME), VERSION, lNEXT_REC)
35
36 CALL READ_RES_DES(lNEXT_REC, VTP_FINDEX)
37 CALL READ_RES_DES(lNEXT_REC, TECPLOT_FINDEX)
38 CALL READ_RES_DES(lNEXT_REC, DTSOLID)
39
40
41 CALL READ_PAR_POS(lNEXT_REC)
42
43 CALL READ_RES_pARRAY(lNEXT_REC, iGLOBAL_ID)
44
45 CALL READ_RES_pARRAY(lNEXT_REC, particle_state)
46
47 DO LC1 = 1, lDIMN
48 CALL READ_RES_pARRAY(lNEXT_REC, DES_VEL_NEW(LC1,:))
49 ENDDO
50
51 DO LC1 = 1, merge(1,3,NO_K)
52 CALL READ_RES_pARRAY(lNEXT_REC, OMEGA_NEW(LC1,:))
53 ENDDO
54
55 CALL READ_RES_pARRAY(lNEXT_REC, DES_RADIUS)
56 CALL READ_RES_pARRAY(lNEXT_REC, RO_SOL)
57
58 IF(MPPIC) CALL READ_RES_pARRAY(lNEXT_REC, DES_STAT_WT)
59 IF(ENERGY_EQ) CALL READ_RES_pARRAY(lNEXT_REC, DES_T_s_NEW)
60
61 IF(ANY_SPECIES_EQ) THEN
62 DO LC1=1, DIMENSION_N_S
63 CALL READ_RES_pARRAY(lNEXT_REC, DES_X_s(:,LC1))
64 ENDDO
65 ENDIF
66
67 IF(VERSION >= 1.1) THEN
68 CALL READ_RES_DES(lNEXT_REC, DES_USR_VAR_SIZE)
69 DO LC1=1, DES_USR_VAR_SIZE
70 CALL READ_RES_pARRAY(lNEXT_REC, DES_USR_VAR(LC1,:))
71 ENDDO
72 ENDIF
73
74
75 IF(RUN_TYPE == 'RESTART_2') RETURN
76
77
78 CALL READ_PAR_COL(lNEXT_REC)
79
80 DO LC1=1, lDIMN
81 CALL READ_RES_cARRAY(lNEXT_REC, PFT_NEIGHBOR(LC1,:))
82 ENDDO
83
84
85
86 CALL READ_RES_DES(lNEXT_REC, DEM_BCMI)
87
88
89
90 IF(DEM_BCMI > 0) CALL ALLOCATE_DEM_MI
91
92
93
94
95 DO LC1=1, DEM_BCMI
96 CALL READ_RES_DES(lNEXT_REC, DEM_MI_TIME(LC1))
97 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%VACANCY)
98 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%OCCUPANTS)
99 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%WINDOW)
100 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%OFFSET)
101 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%L)
102
103 LC2 = DEM_MI(LC1)%OCCUPANTS
104
105 allocate(DEM_MI(LC1)%W(LC2))
106 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%W(:))
107 allocate(DEM_MI(LC1)%H(LC2))
108 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%H(:))
109 allocate(DEM_MI(LC1)%P(LC2))
110 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%P(:))
111 allocate(DEM_MI(LC1)%Q(LC2))
112 CALL READ_RES_DES(lNEXT_REC, DEM_MI(LC1)%Q(:))
113 ENDDO
114
115 CALL FINL_READ_RES_DES
116
117
118 WRITE(ERR_MSG,"('DES restart file read at Time = ',g12.5)") TIME
119 CALL FLUSH_ERR_MSG(HEADER=.FALSE., FOOTER=.FALSE.)
120
121 RETURN
122 END SUBROUTINE READ_RES0_DES
123