38
39
40
43 use glob_therm_mod
44 USE pblast_mod
45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "com01_c.inc"
53#include "com04_c.inc"
54#include "param_c.inc"
55#include "scr03_c.inc"
56#include "scr17_c.inc"
57#include "tabsiz_c.inc"
58#include "boltpr_c.inc"
59#include "sphcom.inc"
60
61
62
63 INTEGER, INTENT(IN) :: (LNOPT1,SNOM_OPT1), INOM_OPT(SINOM_OPT)
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113 TYPE (glob_therm_) ,intent(in) :: glob_therm
114 TYPE (PBLAST_) ,intent(in) :: PBLAST
115 INTEGER, INTENT(IN) :: NUMLOADP, ILOADP(SIZLOADP,NLOADP), LLOADP(NUMLOADP)
116 INTEGER, INTENT(IN) :: ICFIELD(SIZFIELD,NLOADC), LCFIELD(SLCFIELD)
117 INTEGER, INTENT(IN) :: IBCL(NIBCLD,NCONLD-NPRELD), IPRES(NIBCLD,NPRELD)
118 INTEGER, INTENT(IN)
119INTEGER, INTENT(IN) :: IBCV(GLOB_THERM%NICONV,GLOB_THERM%NUMCONV)
120 INTEGER, INTENT(IN) :: IGRV(NIGRV,NGRAV), LGRV(*)
121 INTEGER, INTENT(IN) :: IPRELOAD(3,*), IFLAG_BPRELOAD(NUMELS)
123 . loadp(lfacload,nloadp), cfield(lfacload,nloadc),
124 . forc(lfaccld,nconld-npreld), pres(lfaccld,npreld),
125 . agrv(lfacgrv,ngrav),preload(6,*)
126 my_real,
INTENT(IN) :: fradia(glob_therm%LFACTHER,glob_therm%NUMRADIA)
127 my_real,
INTENT(IN) :: fconv(glob_therm%LFACTHER,glob_therm%NUMCONV)
128 INTEGER, INTENT(IN) :: LIFLOW, LRFLOW
129 INTEGER, DIMENSION(LIFLOW), INTENT(IN) :: IFLOW
130 my_real,
DIMENSION(LRFLOW),
INTENT(IN) :: rflow
131 INTEGER ISPHIO(NISPHIO,NSPHIO)
133 . vsphio(svsphio)
134
135
136
137 INTEGER I,IPRE, MY_ID, MY_LOAD,J,
138 . IDS(NSPHIO),IDX(NSPHIO),II,MY_SPHIO,LVAD(NSPHIO),
139 . FIRST,LAST
140 CHARACTER(LEN=NCHARTITLE) :: TITR
141 CHARACTER (LEN=255) :: VARNAME
142 DOUBLE PRECISION TEMP_DOUBLE
143 LOGICAL :: OK_QA
144 INTEGER :: COUNT,IOPT_FIRST,IOPT_LAST
145
146
147
148 IF (
myqakey(
'/LOAD/CENTRI'))
THEN
149 DO my_load=1,nloadc
150
151
153 IF(len_trim(titr)/=0)THEN
154 CALL qaprint(titr(1:len_trim(titr)),icfield(9,my_load),0.0_8)
155 ELSE
156 CALL qaprint(
'A_LOAD_CENTRI_FAKE_NAME',icfield(9,my_load),0.0_8)
157 END IF
158
159 DO i=1,sizfield
160 IF(icfield(i,my_load) /=0)THEN
161
162
163 WRITE(varname,'(A,I0)') 'ICFIELD_',i
164 CALL qaprint(varname(1:len_trim(varname)),icfield(i,my_load),0.0_8)
165 END IF
166 END DO
167
168 DO i=icfield(4,my_load),icfield(4,my_load)+icfield(1,my_load)-1
169
170
171 WRITE(varname,'(A,I0)') 'LCFIELD_',i
172 CALL qaprint(varname(1:len_trim(varname)),lcfield(i),0.0_8)
173 END DO
174
175 DO i=1,lfacload
176 IF(cfield(i,my_load)/=zero)THEN
177
178
179 WRITE(varname,'(A,I0)') 'CFIELD_',i
180 temp_double = cfield(i,my_load)
181 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
182 END IF
183 END DO
184
185 END DO
186 END IF
187
188
189
191
192 IF (ok_qa) THEN
193
194 iopt_first = 0
195 iopt_last = 0
196 IF(
myqakey(
'/LOAD/PFLUID'))
THEN
197
198 iopt_first = 1
199 iopt_last = nloadp_f
200 ELSEIF(
myqakey(
'/LOAD/PBLAST'))
THEN
201
202 iopt_first = 1+nloadp_f
203 iopt_last = nloadp_f+pblast%NLOADP_B
204 ELSEIF(
myqakey(
'/LOAD/PRESSURE'))
THEN
205
206 iopt_first = 1+nloadp_f+pblast%NLOADP_B
207 iopt_last = nloadp_f+pblast%NLOADP_B+nloadp_hyd
208 ENDIF
209
210
211 DO my_load=iopt_first,iopt_last
212
213
215 IF(len_trim(titr)/=0)THEN
216 CALL qaprint(titr(1:len_trim(titr)),iloadp(2,my_load),0.0_8)
217 ELSE
218 CALL qaprint(
'A_LOAD_PFLUID_FAKE_NAME',iloadp(2,my_load),0.0_8)
219 END IF
220
221 DO i=1,sizloadp
222 IF(iloadp(i,my_load) /=0)THEN
223
224
225 WRITE(varname,'(A,I0)') 'ILOADP_',i
226 CALL qaprint(varname(1:len_trim(varname)),iloadp(i,my_load),0.0_8)
227 END IF
228 END DO
229
230 DO i=1,lfacload
231 IF(loadp(i,my_load)/=zero)THEN
232
233
234 WRITE(varname,'(A,I0)') 'LOADP_',i
235 temp_double = loadp(i,my_load)
236 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
237 END IF
238 END DO
239
240 first=iloadp(4,my_load)
241 last=iloadp(4,my_load)+iloadp(1,my_load)-1
242
243 IF(last-first+1 <= 10 )THEN
244
245 DO i=first,last
246
247 WRITE(varname,'(A,I0)') 'LLOADP_',i
248 CALL qaprint(varname(1:len_trim(varname)),lloadp(i),0.0_8)
249 END DO
250 ELSE
251
252
253 first=iloadp(4,my_load)
254 last=first+5
255 DO i=first,last
256
257 WRITE(varname,'(A,I0)') 'LLOADP_',i ! lloadp(11) => 'LLOADP_11'
258 CALL qaprint(varname(1:len_trim(varname)),lloadp(i),0.0_8)
259 END DO
260
262
263 last=iloadp(4,my_load)+iloadp(1,my_load)-1
264 first=last-5
265 DO i=first,last
266
267 WRITE(varname,'(A,I0)') 'LLOADP_',i
268 CALL qaprint(varname(1:len_trim(varname)),lloadp(i),0.0_8)
269 END DO
270 ENDIF
271
272 END DO
273 END IF
274
275
276
277
279 DO my_load=1,nconld-npreld
280
281
282
284 IF(len_trim(titr)/=0)THEN
285 CALL qaprint(titr(1:len_trim(titr)),my_load,0.0_8)
286 ELSE
287 CALL qaprint(
'A_CLOAD_FAKE_NAME',my_load,0.0_8)
288 END IF
289
290 DO i=1,nibcld
291 IF(ibcl(i,my_load) /=0)THEN
292
293
294 WRITE(varname,'(A,I0)') 'IBCL_',i
295 CALL qaprint(varname(1:len_trim(varname)),ibcl(i,my_load),0.0_8)
296 END IF
297 END DO
298
299 DO i=1,lfaccld
300 IF(forc(i,my_load)/=zero)THEN
301
302
303 WRITE(varname,'(A,I0)') 'FORC_',i
304 temp_double = forc(i,my_load)
305 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
306 END IF
307 END DO
308
309 END DO
310 END IF
311
312
313
315 DO my_load=1,npreld
316
317
318
320 IF(len_trim(titr)/=0)THEN
321 CALL qaprint(titr(1:len_trim(titr)),my_load,0.0_8)
322 ELSE
323 CALL qaprint(
'A_PLOAD_FAKE_NAME',my_load,0.0_8)
324 END IF
325
326 DO i=1,nibcld
327 IF(ipres(i,my_load) /=0)THEN
328
329
330 WRITE(varname,'(A,I0)') 'IPRES_',i
331 CALL qaprint(varname(1:len_trim(varname)),ipres(i,my_load),0.0_8)
332 END IF
333 END DO
334
335 DO i=1,lfaccld
336 IF(pres(i,my_load)/=zero)THEN
337
338
339 WRITE(varname,'(A,I0)') 'PRES_',i
340 temp_double = pres(i,my_load)
341 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
342 END IF
343 END DO
344
345 END DO
346 END IF
347
348
349
350 IF (
myqakey(
'/RADIATION'))
THEN
351 DO my_load=1,glob_therm%NUMRADIA
352
353
354
356 IF(len_trim(titr)/=0)THEN
357 CALL qaprint(titr(1:len_trim(titr)),my_load,0.0_8)
358 ELSE
359 CALL qaprint(
'A_RADIATION_FAKE_NAME',my_load,0.0_8)
360 END IF
361
362 DO i=1,glob_therm%NIRADIA
363 IF(ibcr(i,my_load) /=0)THEN
364
365
366 WRITE(varname,'(A,I0)') 'IBCR_',i
367 CALL qaprint(varname(1:len_trim(varname)),ibcr(i,my_load),0.0_8)
368 END IF
369 END DO
370
371 DO i=1,glob_therm%LFACTHER
372 IF(fradia(i,my_load)/=zero)THEN
373
374
375 WRITE(varname,'(A,I0)') 'FRADIA_',i
376 temp_double = fradia(i,my_load)
377 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
378 END IF
379 END DO
380
381 END DO
382 END IF
383
384
385
387 DO my_load=1,glob_therm%NUMCONV
388
389
390
392 IF(len_trim(titr)/=0)THEN
393 CALL qaprint(titr(1:len_trim(titr)),my_load,0.0_8)
394 ELSE
395 CALL qaprint(
'A_CONVEC_FAKE_NAME',my_load,0.0_8)
396 END IF
397
398 DO i=1,glob_therm%NICONV
399 IF(ibcv(i,my_load) /=0)THEN
400
401
402 WRITE(varname,'(A,I0)') 'IBCV_',i
403 CALL qaprint(varname(1:len_trim(varname)),ibcv(i,my_load),0.0_8)
404 END IF
405 END DO
406
407 DO i=1,glob_therm%LFACTHER
408 IF(fconv(i,my_load)/=zero)THEN
409
410
411 WRITE(varname,'(A,I0)') 'FCONV_',i
412 temp_double = fconv(i,my_load)
413 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
414 END IF
415 END DO
416
417 END DO
418 END IF
419
420
421
423 DO my_load=1,ngrav
424
425
427 my_id=igrv(5,my_load)
428 IF(len_trim(titr)/=0)THEN
429 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
430 ELSE
431 CALL qaprint(
'A_GRAVITY_FAKE_NAME',my_id,0.0_8)
432 END IF
433
434 DO i=1,nigrv
435 IF(igrv(i,my_load) /=0)THEN
436
437
438 WRITE(varname,'(A,I0)') 'IGRV_',i
439 CALL qaprint(varname(1:len_trim(varname)),igrv(i,my_load),0.0_8)
440 END IF
441 END DO
442
443 DO i=igrv(4,my_load),igrv(4,my_load)+igrv(1,my_load)-1
444
445
446 WRITE(varname,'(A,I0)') 'LGRV_',i
447 CALL qaprint(varname(1:len_trim(varname)),lgrv(i),0.0_8)
448 END DO
449
450 DO i=1,lfacgrv
451 IF(agrv(i,my_load)/=zero)THEN
452
453
454 WRITE(varname,'(A,I0)') 'AGRV_',i
455 temp_double = agrv(i,my_load)
456 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
457 END IF
458 END DO
459
460 END DO
461 END IF
462
463
464
466
467
468 IF (npreload > 0) THEN
469
470 DO ipre = 1,numpreload
471
473 IF(len_trim(titr)/=0)THEN
474 CALL qaprint(titr(1:len_trim(titr)),ipre,0.0_8)
475 ELSE
476 CALL qaprint(
'PRELOAD_FAKE_NAME',ipre,0.0_8)
477 END IF
478
479 DO j = 1 , 3
480 IF(ipreload(j,ipre) /=0)THEN
481 WRITE(varname,'(A,I0,I0)') 'IPRELOAD_',j,ipre
482 CALL qaprint(varname(1:len_trim(varname)),ipreload(j,ipre),0.0_8)
483 END IF
484 ENDDO
485
486 IF(ipreload(1,ipre) /=0)THEN
487 j = ipreload(1,ipre)
488 IF(iflag_bpreload(j) /=0)THEN
489 WRITE(varname,'(A,I0)') 'IFLAG_BPRELOAD_',j
490 CALL qaprint(varname(1:len_trim(varname)),iflag_bpreload(j),0.0_8)
491 END IF
492 END IF
493
494 DO j = 1 , 6
495 IF(preload(j,ipre)/=zero)THEN
496 WRITE(varname,'(A,I0,I0)') 'PRELOAD_',j,ipre
497 temp_double = preload(j,ipre)
498 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
499 END IF
500 ENDDO
501
502 ENDDO
503 ENDIF
504 ENDIF
505
506
507 ok_qa =
myqakey(
'/BEM') .AND. nflow > 0
508 IF (ok_qa) THEN
509 WRITE(varname, '(A)') "LIFLOW_=_"
510 CALL qaprint(varname(1:len_trim(varname)), liflow, 0.0_8)
511 WRITE(varname, '(A)') "LRFLOW_=_"
512 CALL qaprint(varname(1:len_trim(varname)), lrflow, 0.0_8)
513 count = 0
514 DO i = 1, liflow
515 WRITE(varname, '(A, I0)') "IFLOW ", i
516 IF (iflow(i) /= 0) THEN
517 count = count + 1
518 CALL qaprint(varname(1:len_trim(varname)), iflow(i), 0.0_8)
519 ENDIF
520 IF (count == 100) EXIT
521 ENDDO
522 count = 0
523 DO i = liflow, 1, -1
524 WRITE(varname, '(A, I0)') "IFLOW ", i
525 IF (iflow(i) /= 0) THEN
526 count = count + 1
527 CALL qaprint(varname(1:len_trim(varname)), iflow(i), 0.0_8)
528 ENDIF
529 IF (count == 100) EXIT
530 ENDDO
531 count = 0
532 DO i = 1, lrflow
533 WRITE(varname, '(A, I0)') "RFLOW ", i
534 temp_double = rflow(i)
535 IF (temp_double /= 0.0_8) THEN
536 count = count + 1
537 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
538 ENDIF
539 IF (count == 100) EXIT
540 ENDDO
541 count = 0
542 DO i = lrflow, 1, -1
543 WRITE(varname, '(A, I0)') "RFLOW ", i
544 temp_double = rflow(i)
545 IF (temp_double /= 0.0_8) THEN
546 count = count + 1
547 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
548 ENDIF
549 IF (count == 100) EXIT
550 ENDDO
551 ENDIF
552
553
554
555 IF (
myqakey(
'/SPH/INOUT'))
THEN
556 IF (nsphio > 0) THEN
557
558
559 DO i = 1, nsphio
560 ids(i) = isphio(nisphio,i)
561 idx(i) = i
562 IF (i /= nsphio) THEN
563 lvad(i) = isphio(4,i+1) - isphio(4,i)
564 ELSE
565 lvad(i) = svsphio - isphio(4,i)
566 ENDIF
567 ENDDO
569
570
571 DO ii = 1,nsphio
572
573 my_sphio = idx(ii)
575 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,inom_opt(22) + my_sphio),ltitr)
576 my_id = nom_opt(1,inom_opt(22)+my_sphio)
577 IF (len_trim(titr) /= 0) THEN
578 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
579 ELSE
580 CALL qaprint(
'A_SPH_INOUT_FAKE_NAME',my_id,0.0_8)
581 END IF
582
583 DO i = 1,nisphio
584 IF (isphio(i,my_sphio) /= 0) THEN
585 WRITE(varname,'(A,I0)') 'ISPHIO_',i
586 CALL qaprint(varname(1:len_trim(varname)),isphio(i,my_sphio),0.0_8)
587 END IF
588 END DO
589
590 DO i = isphio(4,my_sphio),isphio(4,my_sphio)+lvad(my_sphio)-1
591 IF ( vsphio(i) /= zero) THEN
592 WRITE(varname,'(A,I0)') 'VSPHIO_',i
593 temp_double = vsphio(i)
594 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
595 END IF
596 ENDDO
597
598 END DO
599 ENDIF
600 END IF
601
602
603
604
605
606 RETURN
integer, parameter nchartitle
logical function myqakey(value)
@purpose Check if a given value is part of the values set by env variable Useful to make a condition ...
subroutine qaprint(name, idin, value)
@purpose print one entry to QA extract file example of call for real print CALL QAPRINT('MY_LABEL',...
recursive subroutine quicksort_i2(a, idx, first, last)