38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
56
57
58
59#include "implicit_f.inc"
60
61
62
63#include "com01_c.inc"
64#include "com04_c.inc"
65#include "vect01_c.inc"
66#include "param_c.inc"
67#include "inter22.inc"
68
69
70
71 CHARACTER*4, INTENT(IN) :: KEY
72 INTEGER,INTENT(IN) :: NFVBAG, SMONVOL,SVOLMON, AIRBAGS_TOTAL_FVM, AIRBAGS_NODE_ID_SHIFT
73 REAL,INTENT(INOUT) :: WA4(AIRBAGS_TOTAL_FVM)
74 my_real,
INTENT(IN) :: volmon(svolmon)
75 INTEGER,INTENT(IN) :: MONVOL(SMONVOL)
76 TYPE(FVBAG_DATA), INTENT(IN) :: FVDATA_P(NFVBAG)
77 INTEGER,INTENT(INOUT) :: IS_WRITTEN_NODE_FVM()
78
79
80
81 INTEGER :: K1
82 INTEGER :: NN, II
83 INTEGER :: ITYP
84 INTEGER :: IH3D_FLAG
85 INTEGER :: NNODES
86 INTEGER :: IFV
88 INTEGER :: K_SHIFT
89 INTEGER :: INDX
90
91
92
93
94
95
96
97 k1=1
98 k_shift=0
99 DO nn=1,nvolu
100 ityp=monvol(k1-1+2)
101 IF (ityp == 6.OR.ityp == 8 .OR. ityp == 11) THEN
102 ih3d_flag = monvol(k1-1 +75)
103 ifv = monvol(k1-1 +45)
104
105 IF(ih3d_flag == 1 .AND. ifv /= 0)THEN
106
107 IF(fvdata_p(ifv)%NPOLH > 0)THEN
108
109 SELECT CASE (trim(key))
110
111 CASE('P','PRES')
112 DO ii=1,fvdata_p(ifv)%NPOLH
113 VALUE = fvdata_p(ifv)%PPOLH(ii)
114 wa4(k_shift+ii) = VALUE
115 is_written_node_fvm(k_shift+ii) = 1
116 enddo
117
118 CASE('T','TEMP')
119 DO ii=1, fvdata_p(ifv)%NPOLH
120 VALUE = fvdata_p(ifv)%TPOLH(ii)
121 wa4(k_shift+ii) = VALUE
122 is_written_node_fvm(k_shift
123 enddo
124
125 CASE('D','DENS')
126 DO ii=1, fvdata_p(ifv)%NPOLH
127 VALUE = fvdata_p(ifv)%RPOLH(ii)
128 wa4(k_shift+ii) = VALUE
129 is_written_node_fvm(k_shift+ii) = 1
130 enddo
131
132 CASE('SSP')
133 DO ii=1, fvdata_p(ifv)%NPOLH
134 VALUE = fvdata_p(ifv)%SSPPOLH(ii)
135 wa4(k_shift+ii) = VALUE
136 is_written_node_fvm(k_shift+ii) = 1
137 enddo
138
139 CASE('DT')
140 DO ii=1, fvdata_p(ifv)%NPOLH
141 VALUE = fvdata_p(ifv)%DTPOLH(ii)
142 wa4(k_shift+ii) = VALUE
143 is_written_node_fvm(k_shift+ii) = 1
144 enddo
145
146 CASE('V', 'VOL', 'ZVOL')
147 DO ii=1, fvdata_p(ifv)%NPOLH
148 VALUE = zero
149 IF(abs(fvdata_p(ifv)%RPOLH(ii)) > em20 )THEN
150 VALUE = fvdata_p(ifv)%MPOLH(ii) / fvdata_p(ifv)%RPOLH(ii)
151 ENDIF
152 wa4(k_shift+ii) = VALUE
153 is_written_node_fvm(k_shift+ii) = 1
154 enddo
155
156 END SELECT
157
158
159
160 ENDIF
161 ENDIF
162 k_shift = k_shift + fvdata_p(ifv)%NPOLH
163 ENDIF
164 k1=k1+nimv
165
166 ENDDO
167
168
169 IF(k_shift < airbags_total_fvm)THEN
170 DO ii= k_shift+1,airbags_total_fvm
171 wa4(ii) = zero
172 is_written_node_fvm(ii) = 0
173 ENDDO
174 ENDIF
175
176
177 RETURN