86
87
88
89
90
91
92
93#include "implicit_f.inc"
94
95
96
97 INTEGER :: IDO
98
99
100
101 INTEGER :: IOUT
102 INTEGER :: IGAP
103 INTEGER :: IPEN0
104 INTEGER :: I_STOK
105 INTEGER :: INACTI
106 INTEGER :: MULTIMP
107 INTEGER :: NMN
108 INTEGER :: NRTM
109 INTEGER :: NRTM0
110 INTEGER :: NRTM_SH
111 INTEGER :: NRTSE
112 INTEGER :: NSN
113 INTEGER :: NSN0
114 INTEGER :: NSNE
115 INTEGER :: NUMELS
116 INTEGER :: NUMELS8
117 INTEGER :: NUMELS10
118 INTEGER :: NUMELS16
119 INTEGER :: NUMELS20
120 INTEGER :: NUMNOD
121
122 INTEGER :: B_I_STOK(*)
123 INTEGER :: ICONT_I(*)
124 INTEGER :: IPARTNS(*)
125 INTEGER :: IRECTM(*)
126 INTEGER :: IRTLM(*)
127 INTEGER :: IRTSE(*)
128 INTEGER :: IS2SE(*)
129 INTEGER :: IS2PT(*)
130 INTEGER :: ITAB (*)
131 INTEGER :: MBINFLG(*)
132 INTEGER :: MSEGTYP24(*)
133 INTEGER :: MSR(*)
134 INTEGER :: MWA(*)
135 INTEGER :: NBINFLG(*)
136 INTEGER :: NOD2ELS,KNOD2ELS(*)
137 INTEGER :: NSEG(*)
138 INTEGER :: NSV(*)
139 INTEGER :: IXS(*)
140 INTEGER :: IXS10(*)
141 INTEGER :: IXS16(*)
142 INTEGER :: IXS20 (*)
143 INTEGER :: MVOISIN(*)
144 REAL(8) :: VARIABLES(38)
145 REAL(8) :: X(*)
146 INTEGER :: CAND_E(*)
147 INTEGER :: CAND_N(*)
148 REAL(8) :: GAP_M(*)
149 REAL(8) :: GAP_NM(*)
150 REAL(8) :: GAP_S(*)
151 REAL(8) :: PENE_OLD(*)
152 REAL(8) :: PENMIN(*)
153 REAL(8) :: STFM (*)
154 REAL(8) :: STFNS(*)
155 REAL(8) :: STIF_OLD(*)
156 REAL(8) :: XFIC(*)
157 REAL(8) :: RWA (*)
158
159
160
161 INTEGER :: SIZ_B_I_STOK
162 INTEGER :: SIZ_ICONT_I
163 INTEGER :: SIZ_IPARTNS
164 INTEGER :: SIZ_IRECTM
165 INTEGER :: SIZ_IRTLM
166 INTEGER :: SIZ_IRTSE
167 INTEGER :: SIZ_IS2SE
168 INTEGER :: SIZ_IS2PT
169 INTEGER :: SIZ_ITAB
170 INTEGER :: SIZ_MBINFLG
171 INTEGER :: SIZ_MSEGTYP24
172 INTEGER :: SIZ_MSR
173 INTEGER :: SIZ_MWA
174 INTEGER :: SIZ_NBINFLG
175 INTEGER :: SIZ_NOD2ELS
176 INTEGER :: SIZ_KNOD2ELS
177 INTEGER :: SIZ_NSEG
178 INTEGER :: SIZ_NSV
179 INTEGER :: SIZ_IXS
180 INTEGER :: SIZ_IXS10
181 INTEGER :: SIZ_IXS16
182 INTEGER :: SIZ_IXS20
183 INTEGER :: SIZ_MVOISIN
184 INTEGER :: SIZ_X
185 INTEGER :: SIZ_CAND_E
186 INTEGER :: SIZ_CAND_N
187 INTEGER :: SIZ_GAP_M
188 INTEGER :: SIZ_GAP_NM
189 INTEGER :: SIZ_GAP_S
190 INTEGER :: SIZ_PENE_OLD
191 INTEGER :: SIZ_PENMIN
192 INTEGER :: SIZ_STFM
193 INTEGER :: SIZ_STFNS
194 INTEGER :: SIZ_STIF_OLD
195 INTEGER :: SIZ_XFIC
196 INTEGER :: SIZ_RWA
197 LOGICAL :: FLAG
198 INTEGER :: IEDGE
199 INTEGER :: IEDGE4
200 INTEGER :: ILEV
201
202
203 iedge = 0
204 iedge4= 0
205 ilev = 1
206 flag = .false.
207
208 IF(ido==0) flag = .true.
209
210
211 IF(ido == 0 .OR. ido == 1) THEN
212 WRITE(6,*)
"IGAP " ;
CALL io_int(igap ,iout ,flag);
CALL flush(6)
213 WRITE(6,*)
"IPEN0 " ;
CALL io_int(ipen0 ,iout ,flag);
CALL flush(6)
214 WRITE(6,*)
"I_STOK " ;
CALL io_int(i_stok ,iout ,flag);
CALL flush(6)
215 WRITE(6,*)
"INACTI " ;
CALL io_int(inacti ,iout ,flag);
CALL flush(6)
216
217 WRITE(6,*)
"NMN " ;
CALL io_int(nmn ,iout ,flag);
CALL flush(6)
218 WRITE(6,*)
"NRTM " ;
CALL io_int(nrtm ,iout ,flag);
CALL flush(6)
219 WRITE(6,*)
"NRTM0 " ;
CALL io_int(nrtm0 ,iout ,flag);
CALL flush(6)
220 WRITE(6,*)
"NRTM_SH " ;
CALL io_int(nrtm_sh ,iout ,flag);
CALL flush(6)
221 WRITE(6,*)
"NRTSE " ;
CALL io_int(nrtse ,iout ,flag);
CALL flush(6)
222 WRITE(6,*)
"NSN " ;
CALL io_int(nsn ,iout ,flag);
CALL flush(6)
223 WRITE(6,*)
"NSN0 " ;
CALL io_int(nsn0 ,iout ,flag);
CALL flush(6)
224 WRITE(6,*)
"NSNE " ;
CALL io_int(nsne ,iout ,flag);
CALL flush(6)
225 WRITE(6,*)
"NUMELS " ;
CALL io_int(numels ,iout ,flag);
CALL flush(6)
226 WRITE(6,*)
"NUMELS8 " ;
CALL io_int(numels8 ,iout ,flag);
CALL flush(6)
227 WRITE(6,*)
"NUMELS10" ;
CALL io_int(numels10 ,iout ,flag);
CALL flush(6)
228 WRITE(6,*)
"NUMELS16" ;
CALL io_int(numels16 ,iout ,flag);
CALL flush(6)
229 WRITE(6,*)
"NUMELS20" ;
CALL io_int(numels20 ,iout ,flag);
CALL flush(6)
230 WRITE(6,*)
"NUMNOD " ;
CALL io_int(numnod ,iout ,flag);
CALL flush(6)
231 ENDIF
232
233
234
235 IF(ido == 0 .OR. ido ==2) THEN
236 siz_b_i_stok =1
237 siz_icont_i =nsn
238 siz_ipartns =nsn
239 siz_irectm =4 * nrtm
240 siz_irtlm =2 * nsn
241 siz_irtse = 0
242 siz_is2se = 0
243 IF(iedge4>0) siz_irtse =5 * nsne
244 IF(iedge4>0) siz_is2se =2 * nsne
245 siz_is2pt =nsne
246 siz_itab =numnod
247 siz_mbinflg = 0
248 IF(iedge >0 .OR. ilev == 2) siz_mbinflg =nrtm
249 siz_msegtyp24 =nrtm
250 siz_msr =nmn
251 siz_mwa =6*
max(numnod,nrtm+100)
252 siz_nbinflg = 0
253 IF(iedge >0 .OR. ilev == 2) siz_nbinflg =nmn
254 siz_nod2els =8*numels+6*numels10+12*numels20+8*numels16
255 siz_knod2els =numnod + 1
256 siz_nseg =1+nmn
257 siz_nsv =nsn
258 siz_ixs =numels*11
259 siz_ixs10 =numels10*6
260 siz_ixs16 =numels20*12
261 siz_ixs20 =numels16*8
262 siz_mvoisin =nrtm*4
263 siz_x =numnod*3
264 siz_cand_e =(nsn * multimp)
265 siz_cand_n =(nsn * multimp )
266 siz_gap_m =0
267 IF(igap > 0 ) siz_gap_m =nrtm
268 siz_gap_nm =12*nrtm
269 siz_gap_s = 0
270 IF(igap > 0 ) siz_gap_s =nsn
271 siz_pene_old =5 *nsn
272 siz_penmin =nsn
273 siz_stfm =nrtm
274 siz_stfns =nsn
275 siz_stif_old =2*nsn
276 siz_xfic =3*nsne
277 siz_rwa =6*numnod
278
279
280 WRITE(6,*)
" IPARTNS ";
CALL io_iarray (ipartns ,siz_ipartns ,iout ,flag)
281 WRITE(6,*)
" IRECTM ";
CALL io_iarray (irectm ,siz_irectm ,iout ,flag)
282
283 WRITE(6,*)
" IRTSE ";
CALL io_iarray (irtse ,siz_irtse ,iout ,flag)
284 WRITE(6,*)
" IS2SE ";
CALL io_iarray (is2se ,siz_is2se ,iout ,flag)
285 WRITE(6,*)
" IS2PT ";
CALL io_iarray (is2pt ,siz_is2pt ,iout ,flag)
286 WRITE(6,*)
" ITAB ";
CALL io_iarray (itab ,siz_itab ,iout ,flag)
287 WRITE(6,*)
" MBINFLG ";
CALL io_iarray (mbinflg ,siz_mbinflg ,iout ,flag)
288 WRITE(6,*)
" MSEGTYP24 ";
CALL io_iarray (msegtyp24,siz_msegtyp24,iout ,flag)
289 WRITE(6,*)
" MSR ";
CALL io_iarray (msr ,siz_msr ,iout ,flag)
290
291 WRITE(6,*)
" NBINFLG ";
CALL io_iarray (nbinflg ,siz_nbinflg ,iout ,flag)
292 WRITE(6,*)
" NOD2ELS ";
CALL io_iarray (nod2els ,siz_nod2els ,iout ,flag)
293 WRITE(6,*)
" KNOD2ELS ";
CALL io_iarray (knod2els ,siz_knod2els ,iout ,flag)
294
295 WRITE(6,*)
" NSV ";
CALL io_iarray (nsv ,siz_nsv ,iout ,flag)
296 WRITE(6,*)
" ICONT_I ";
CALL io_iarray (icont_i ,siz_icont_i ,iout ,flag)
297 WRITE(6,*)
" IXS ";
CALL io_iarray (ixs ,siz_ixs ,iout ,flag)
298 WRITE(6,*)
" IXS10 ";
CALL io_iarray (ixs10 ,siz_ixs10 ,iout ,flag)
299 WRITE(6,*)
" IXS16 ";
CALL io_iarray (ixs16 ,siz_ixs16 ,iout ,flag)
300 WRITE(6,*)
" IXS20 ";
CALL io_iarray (ixs20 ,siz_ixs20 ,iout ,flag)
301 WRITE(6,*)
" MVOISIN ";
CALL io_iarray (mvoisin ,siz_mvoisin ,iout ,flag)
302 WRITE(6,*)
" CAND_E ";
CALL io_iarray (cand_e ,siz_cand_e ,iout ,flag)
303 WRITE(6,*)
" CAND_N ";
CALL io_iarray (cand_n ,siz_cand_n ,iout ,flag)
304
305 WRITE(6,*)
" VARIABLES ";
CALL io_rarray (variables,38 ,iout ,flag)
306 WRITE(6,*)
" X ";
CALL io_rarray (x ,siz_x ,iout ,flag)
307 WRITE(6,*)
" GAP_M ";
CALL io_rarray (gap_m ,siz_gap_m ,iout ,flag)
308 WRITE(6,*)
" GAP_NM ";
CALL io_rarray (gap_nm ,siz_gap_nm ,iout ,flag)
309 WRITE(6,*)
" GAP_S ";
CALL io_rarray (gap_s ,siz_gap_s ,iout ,flag)
310
311
312
313
314 WRITE(6,*)
" XFIC ";
CALL io_rarray (xfic ,siz_xfic ,iout ,flag)
315
316
317 ENDIF
318 CALL flush(6)
319 CALL flush(iout)
320
321 RETURN
subroutine io_rarray(array, length, iout, flag)
subroutine io_int(scalar, iout, flag)
subroutine io_iarray(array, length, iout, flag)