42
43
44
47 USE bcs_mod
49 use glob_therm_mod
50
51
52
53#include "implicit_f.inc"
54
55
56
57#include "com04_c.inc"
58#include "lagmult.inc"
59#include "param_c.inc"
60#include "scr17_c.inc"
61#include "tabsiz_c.inc"
62#include "sphcom.inc"
63#include "fxbcom.inc"
64
65
66
67 INTEGER, INTENT(IN) :: NOM_OPT(LNOPT1,SNOM_OPT1), INOM_OPT(SINOM_OPT)
68 INTEGER, INTENT(IN) :: ITAB(NUMNOD)
69 TYPE (glob_therm_) ,intent(in) :: glob_therm
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
114
115
116
117
118
119 INTEGER, INTENT(IN) :: NIMPDISP,NIMPVEL,NIMPACC
120 INTEGER, INTENT(IN) :: NPBY(NNPBY,NRBYKIN), NPBYL(NNPBY,NRBYLAG),
121 . LPBY(*), LPBYL(*), IBCSCYC(4,NBCSCYC)
122 INTEGER, INTENT(IN) :: IBFTEMP(GLOB_THERM%NIFT,GLOB_THERM%NFXTEMP)
123 INTEGER, INTENT(IN) :: IBFFLUX(%NITFLUX,GLOB_THERM%NFXFLUX)
124 INTEGER, INTENT(IN) :: ICODE(NUMNOD), ISKEW(NUMNOD),IBFVEL(NIFV,NFXVEL)
125 INTEGER, INTENT(IN) :: IBCSLAG(5,NBCSLAG),NPRW(NRWALL,NNPRW),LPRW(SLPRW)
126 INTEGER, INTENT(IN) :: IRBE3(NRBE3L,NRBE3), LRBE3(SLRBE3)
127 INTEGER, INTENT(IN) :: IRBE2(NRBE2L,NRBE2), LRBE2(SLRBE2)
128 INTEGER, INTENT(IN) :: NNLINK(10,SNNLINK), LNLINK(SLNLINK)
129 INTEGER, DIMENSION(NRWALL) :: IDX, IDS
130 INTEGER, DIMENSION(NFXBODY) :: IDXFX, IDSFX
131 INTEGER, INTENT(IN) :: MGRBY(NMGRBY,SMGRBY)
132 INTEGER, INTENT(IN) :: ISPCOND(NISPCOND,*),LJOINT(*),GJBUFI(LKJNI,*)
133 INTEGER, INTENT(IN) :: IBMPC(NUMMPC),IBMPC2(LMPC),IBMPC3(LMPC),IBMPC4(LMPC)
135 . rby(nrby,nrbykin),rbyl(nrby,nrbylag),frbe3(6,*),gjbufr(lkjnr,*),ms(*),in(*)
136 my_real,
INTENT(IN) :: fbftemp(glob_therm%LFACTHER,glob_therm%NFXTEMP)
137 my_real,
INTENT(IN) :: fbfflux(glob_therm%LFACTHER,glob_therm%NFXFLUX)
138 my_real,
INTENT(IN) :: fbfvel(lfxvelr,nfxvel)
140 . rwbuf(nrwlp,nrwall)
142 . rbmpc(srbmpc)
143 INTEGER, INTENT(IN) :: LLINAL
144 INTEGER, DIMENSION(LLINAL), INTENT(IN) :: LINALE
145 INTEGER, INTENT(IN) :: FXBIPM(NBIPM,NFXBODY)
146 CHARACTER, DIMENSION(NFXBODY) :: FXBFILE_TAB*2148
147
148
149
150 INTEGER I, II, MY_ID, MY_RBODY, MY_CONSTRAINT, MY_NODE, MY_RWALL, POSI(NRWALL+1),
151 . MY_MERGE, TNSL, NS, MY_FXBODY
152 CHARACTER(LEN=NCHARTITLE) :: TITR
153 CHARACTER (LEN=255) :: VARNAME
154 DOUBLE PRECISION TEMP_DOUBLE
155 INTEGER TEMP_INTEGER
156 INTEGER IADS,ITMP
157
158
159
161 DO my_rbody=1,nrbykin
162
163 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,my_rbody),ltitr)
164 my_id = npby(6,my_rbody)
165 IF(len_trim(titr)/=0)THEN
166 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
167 ELSE
168 CALL qaprint(
'A_RIGID_BODY_FAKE_NAME',my_id,0.0_8)
169 END IF
170
171 DO i=1,nnpby
172 IF(npby(i,my_rbody) /=0)THEN
173
174
175 WRITE(varname,'(A,I0)') 'NPBY_',i
176 CALL qaprint(varname(1:len_trim(varname)),npby(i,my_rbody),0.0_8)
177 END IF
178 END DO
179
180 DO i=npby(11,my_rbody)+1,npby(11,my_rbody)+npby(2,my_rbody)
181
182
183 WRITE(varname,'(A,I0)') 'LPBY_',i
184 CALL qaprint(varname(1:len_trim(varname)),lpby(i),0.0_8)
185 END DO
186
187 DO i=1,nrby
188 IF(rby(i,my_rbody)/=zero)THEN
189
190
191 WRITE(varname,'(A,I0)') 'RBY_',i
192 temp_double = rby(i,my_rbody)
193 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
194 END IF
195 END DO
196
197 END DO
198
199 tnsl=0
200 DO my_rbody=1,nrbylag
201
202 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,nrbykin+my_rbody),ltitr)
203 my_id = npbyl(6,my_rbody)
204 IF(len_trim(titr)/=0)THEN
205 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
206 ELSE
207 CALL qaprint(
'A_RIGID_BODY_FAKE_NAME',my_id,0.0_8)
208 END IF
209
210 DO i=1,nnpby
211 IF(npbyl(i,my_rbody) /=0)THEN
212
213
214 WRITE(varname,'(A,I0)') 'NPBYL_',i
215 CALL qaprint(varname(1:len_trim(varname)),npbyl(i,my_rbody),0.0_8)
216 END IF
217 END DO
218
219 DO i=1,npbyl(2,my_rbody)-1
220
221
222 WRITE(varname,'(A,I0)') 'LPBYL_',i
223 CALL qaprint(varname(1:len_trim(varname)),itab(lpbyl(tnsl+i)),0.0_8)
224 END DO
225
226 DO i=1,nrby
227 IF(rbyl(i,my_rbody)/=zero)THEN
228
229
230 WRITE(varname,'(A,I0)') 'RBYL_',i
231 temp_double = rbyl(i,my_rbody)
232 CALL qaprint(varname(1:len_trim(varname)),0,temp_double
233 END IF
234 END DO
235
236 tnsl=tnsl+3*npbyl(2,my_rbody)
237 END DO
238 END IF
239
240
241
243 DO my_node=1,numnod
244
245 my_id = itab(my_node)
246
247 IF(icode(my_node)/=0)THEN
248
249 WRITE(varname,'(A,I0,I0)') 'ICODE_',my_id
250 CALL qaprint(varname(1:len_trim(varname)),icode(my_node),0.0_8)
251 END IF
252
253 IF(iskew(my_node)/=0)THEN
254
255
256 WRITE(varname,'(A,I0,I0)') 'ISKEW_',my_id
257 CALL qaprint(varname(1:len_trim(varname)),iskew(my_node),0.0_8)
258 END IF
259
260 END DO
261 END IF
262
263
264
266 DO my_constraint=1,glob_therm%NFXTEMP
267
268
269
271 IF(len_trim(titr)/=0)THEN
272 CALL qaprint(titr(1:len_trim(titr)),my_constraint,0.0_8)
273 ELSE
274 CALL qaprint(
'A_IMPTEMP_FAKE_NAME',my_constraint,0.0_8)
275 END IF
276
277 DO i=1,glob_therm%NIFT
278 IF(ibftemp(i,my_constraint) /=0)THEN
279
280
281 WRITE(varname,'(A,I0)') 'IBFTEMP_',i
282 CALL qaprint(varname(1:len_trim(varname)),ibftemp(i,my_constraint),0.0_8)
283 END IF
284 END DO
285
286 DO i=1,glob_therm%LFACTHER
287 IF(fbftemp(i,my_constraint)/=zero)THEN
288
289
290 WRITE(varname,'(A,I0)') 'FBFTEMP_',i
291 temp_double = fbftemp(i,my_constraint)
292 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
293 END IF
294 END DO
295
296 END DO
297 END IF
298
299
300
302 DO my_constraint=1,nimpdisp
303
305 IF(len_trim(titr)/=0)THEN
306 CALL qaprint(titr(1:len_trim(titr)),my_constraint,0.0_8)
307 ELSE
308 CALL qaprint(
'A_IMPACC_FAKE_NAME',my_constraint,0.0_8)
309 END IF
310
311 DO i=1,nifv
312 IF (ibfvel(i,my_constraint) /=0) THEN
313
314
315 WRITE(varname,'(A,I0)') 'IBFVEL_',i
316 CALL qaprint(varname(1:len_trim(varname)),ibfvel(i,my_constraint),0.0_8)
317 END IF
318 END DO
319
320 DO i=1,lfxvelr
321 IF(fbfvel(i,my_constraint)/=zero)THEN
322
323
324 WRITE(varname,'(A,I0)') 'FBFVEL_',i
325 temp_double = fbfvel(i,my_constraint)
326 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
327 END IF
328 END DO
329
330 END DO
331 END IF
332
333
334
336 DO my_constraint=nimpdisp+1,nimpdisp+nimpvel
337
339 IF(len_trim(titr)/=0)THEN
340 CALL qaprint(titr(1:len_trim(titr)),my_constraint,0.0_8)
341 ELSE
342 CALL qaprint(
'A_IMPACC_FAKE_NAME',my_constraint,0.0_8)
343 END IF
344
345 DO i=1,nifv
346 IF (ibfvel(i,my_constraint) /=0) THEN
347
348
349 WRITE(varname,'(A,I0)') 'IBFVEL_',i
350 CALL qaprint(varname(1:len_trim(varname)),ibfvel(i,my_constraint),0.0_8)
351 END IF
352 END DO
353
354 DO i=1,lfxvelr
355 IF(fbfvel(i,my_constraint)/=zero)THEN
356
357
358 WRITE(varname,'(A,I0)') 'FBFVEL_',i
359 temp_double = fbfvel(i,my_constraint)
360 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
361 END IF
362 END DO
363
364 END DO
365 END IF
366
367
368
370 DO my_constraint=nfxvel-nimpacc+1,nfxvel
371
372
373
375 IF(len_trim(titr)/=0)THEN
376 CALL qaprint(titr(1:len_trim(titr)),my_constraint,0.0_8)
377 ELSE
378 CALL qaprint(
'A_IMPACC_FAKE_NAME',my_constraint,0.0_8)
379 END IF
380
381 DO i=1,nifv
382 IF (ibfvel(i,my_constraint) /=0) THEN
383
384
385 WRITE(varname,'(A,I0)') 'IBFVEL_',i
386 CALL qaprint(varname(1:len_trim(varname)),ibfvel(i,my_constraint),0.0_8
387 END IF
388 END DO
389
390 DO i=1,lfxvelr
391 IF(fbfvel(i,my_constraint)/=zero)THEN
392
393
394 WRITE(varname,'(A,I0)') 'FBFVEL_',i
395 temp_double = fbfvel(i,my_constraint)
396 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
397 END IF
398 END DO
399
400 END DO
401 END IF
402
403
404
406 DO my_constraint=1,glob_therm%NFXFLUX
407
408
409
411 IF(len_trim(titr)/=0)THEN
412 CALL qaprint(titr(1:len_trim(titr)),my_constraint,0.0_8)
413 ELSE
414 CALL qaprint(
'A_IMPFLUX_FAKE_NAME',my_constraint,0.0_8)
415 END IF
416
417 DO i=1,glob_therm%NITFLUX
418 IF(ibfflux(i,my_constraint) /=0)THEN
419
420
421 WRITE(varname,'(A,I0)') 'IBFFLUX_',i
422 CALL qaprint(varname(1:len_trim(varname)),ibfflux(i,my_constraint),0.0_8)
423 END IF
424 END DO
425
426 DO i=1,glob_therm%LFACTHER
427 IF(fbfflux(i,my_constraint)/=zero)THEN
428
429
430 WRITE(varname,'(A,I0)') 'FBFFLUX_',i
431 temp_double = fbfflux(i,my_constraint)
432 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
433 END IF
434 END DO
435
436 END DO ! my_constraint=1,nfxflux
437 END IF
438
439
440
441 IF (
myqakey(
'/BCS/LAGMUL'))
THEN
442 DO my_constraint=1,nbcslag
443
445 my_id = ibcslag(5,my_constraint)
446 IF(len_trim(titr)/=0)THEN
447 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
448 ELSE
449 CALL qaprint(
'A_BCS_LAGMUL_FAKE_NAME',my_id,0.0_8)
450 END IF
451
452 DO i=1,5
453
454 IF(ibcslag(i,my_constraint)/=0)THEN
455
456
457 WRITE(varname,'(A,I0,I0)') 'IBCSLAG_',i
458 CALL qaprint(varname(1:len_trim(varname)),ibcslag(i,my_constraint),0.0_8)
459 END IF
460
461 END DO
462
463 END DO
464 END IF
465
466
467
468 IF (
myqakey(
'/BCS/CYCLIC'))
THEN
469 DO my_constraint=1,nbcscyc
470
472 my_id = ibcscyc(4,my_constraint)
473 IF(len_trim(titr)/=0)THEN
474 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
475 ELSE
476 CALL qaprint(
'A_BCS_CYCLIC_FAKE_NAME',my_id,0.0_8)
477 END IF
478
479 DO i=1,4
480
481 IF(ibcscyc(i,my_constraint)/=0THEN
482
483
484 WRITE(varname,'(A,I0,I0)') 'IBCSCYC_',i
485 CALL qaprint(varname(1:len_trim(varname)),ibcscyc(i,my_constraint),0.0_8)
486 END IF
487
488 END DO
489
490 END DO
491 END IF
492
493
494
496 DO my_constraint=1,bcs%NUM_WALL
497
499 my_id = bcs%WALL(my_constraint)%user_id
500 IF(len_trim(titr)/=0)THEN
501 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
502 ELSE
503 CALL qaprint(
'A_BCS_WALL_FAKE_NAME',my_id,0.0_8)
504 END IF
505
506 WRITE(varname,'(A,I0,A)') 'BCS_WALL_',my_constraint,'__IS_DEPENDING_ON_TIME_'
507 temp_integer = 0
508 IF(bcs%WALL(my_constraint)%IS_DEPENDING_ON_TIME)temp_integer=1
509 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
510
511 WRITE(varname,'(A,I0,A)') 'BCS_WALL_',my_constraint,'__IS_DEPENDING_ON_SENSOR_'
512 temp_integer = 0
513 IF(bcs%WALL(my_constraint)%IS_DEPENDING_ON_SENSOR)temp_integer=1
514 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
515
516 WRITE(varname,'(A,I0,A)') 'BCS_WALL_',my_constraint,'__GRNOD_ID_'
517 temp_integer = bcs%WALL(my_constraint)%GRNOD_ID
518 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
519
520 WRITE(varname,'(A,I0,A)') 'BCS_WALL_',my_constraint,'__SENSOR_ID_'
521 temp_integer = bcs%WALL(my_constraint)%SENSOR_ID
522 CALL qaprint(varname(1:len_trim(varname)),temp_integer,0.0_8)
523
524 WRITE(varname,'(A,I0,A)') 'BCS_WALL_',my_constraint,'__TSTART_'
525 temp_double = bcs%WALL(my_constraint)%TSTART
526 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
527
528 WRITE(varname,'(A,I0,A)') 'BCS_WALL_',my_constraint,'__tstop_'
529 TEMP_DOUBLE = BCS%WALL(MY_CONSTRAINT)%TSTOP
530 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
531 !
532 WRITE(VARNAME,'(a,i0,a)') 'bcs_wall_',MY_CONSTRAINT,'__list__size_'
533 TEMP_INTEGER = BCS%WALL(MY_CONSTRAINT)%LIST%SIZE
534 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
535 !
536 ITMP=TEMP_INTEGER
537 IF(ITMP == 1)THEN
538 WRITE(VARNAME,'(a,i0,a)') 'bcs_wall_',MY_CONSTRAINT,'__list__elem_1_'
539 TEMP_INTEGER = BCS%WALL(MY_CONSTRAINT)%LIST%ELEM(1)
540 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
541 !
542 WRITE(VARNAME,'(a,i0,a)') 'bcs_wall_',MY_CONSTRAINT,'__list__face_1_'
543 TEMP_INTEGER = BCS%WALL(MY_CONSTRAINT)%LIST%FACE(1)
544 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
545 ELSEIF(ITMP > 1)THEN
546 TEMP_INTEGER = BCS%WALL(MY_CONSTRAINT)%LIST%ELEM(1)
547 WRITE(VARNAME,'(a,i0,a,i0,a)') 'bcs_wall_',MY_CONSTRAINT,'__list__elems_ ',TEMP_INTEGER,' ...'
548 TEMP_INTEGER = BCS%WALL(MY_CONSTRAINT)%LIST%ELEM(ITMP)
549 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
550 !
551 TEMP_INTEGER = BCS%WALL(MY_CONSTRAINT)%LIST%FACE(1)
552 WRITE(VARNAME,'(a,i0,a,i0,a)') 'bcs_wall_',MY_CONSTRAINT,'__list__faces_ ',TEMP_INTEGER,' ...'
553 TEMP_INTEGER = BCS%WALL(MY_CONSTRAINT)%LIST%FACE(ITMP)
554 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
555 ENDIF
556
557 END DO ! MY_CONSTRAINT=1,BCS%NUM_WALL
558 END IF
559
560
561
562 IF (MYQAKEY('/bcs/nrf')) THEN
563 DO MY_CONSTRAINT=1,BCS%NUM_NRF
564
565 TITR(1:nchartitle)=''
566 MY_ID = BCS%NRF(MY_CONSTRAINT)%user_id
567 IF(LEN_TRIM(TITR)/=0)THEN
568 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
569 ELSE
570 CALL QAPRINT('a_bcs_nrf_fake_name',MY_ID,0.0_8)
571 END IF
572 !
573 WRITE(VARNAME,'(a,i0,a)') 'bcs_nrf_',MY_CONSTRAINT,'__grnod_id_'
574 TEMP_INTEGER = BCS%NRF(MY_CONSTRAINT)%SET_ID
575 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
576 !
577 WRITE(VARNAME,'(a,i0,a)') 'bcs_nrf_',MY_CONSTRAINT,'__list__size_'
578 TEMP_INTEGER = BCS%NRF(MY_CONSTRAINT)%LIST%SIZE
579 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
580 !
581 ITMP=TEMP_INTEGER
582 IF(ITMP == 1)THEN
583 WRITE(VARNAME,'(a,i0,a)') 'bcs_nrf_',MY_CONSTRAINT,'__list__elem_1_'
584 TEMP_INTEGER = BCS%NRF(MY_CONSTRAINT)%LIST%ELEM(1)
585 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
586 !
587 WRITE(VARNAME,'(a,i0,a)') 'bcs_nrf_',MY_CONSTRAINT,'__list__face_1_'
588 TEMP_INTEGER = BCS%NRF(MY_CONSTRAINT)%LIST%FACE(1)
589 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
590 ELSEIF(ITMP > 1)THEN
591 TEMP_INTEGER = BCS%NRF(MY_CONSTRAINT)%LIST%ELEM(1)
592 WRITE(VARNAME,'(a,i0,a,i0,a)') 'bcs_nrf_',MY_CONSTRAINT,'__list__elems_ ',TEMP_INTEGER,' ...'
593 TEMP_INTEGER = BCS%NRF(MY_CONSTRAINT)%LIST%ELEM(ITMP)
594 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
595 !
596 TEMP_INTEGER = BCS%NRF(MY_CONSTRAINT)%LIST%FACE(1)
597 WRITE(VARNAME,'(a,i0,a,i0,a)') 'bcs_nrf_',MY_CONSTRAINT,'__list__faces_ ',TEMP_INTEGER,' ...'
598 TEMP_INTEGER = BCS%NRF(MY_CONSTRAINT)%LIST%FACE(ITMP)
599 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INTEGER,0.0_8)
600 ENDIF
601
602 END DO ! MY_CONSTRAINT=1,BCS%NUM_NRF
603 END IF
604
605
606
607 IF (MYQAKEY('/rwall')) THEN
608 IF (NRWALL > 0) THEN
609
610! Sort by ID to ensure internal order independent output
611 POSI(1) = 1
612 DO I = 1, NRWALL
613 IDS(I) = NOM_OPT(LNOPT1*INOM_OPT(5)+1,I)
614 IDX(I) = I
615 POSI(I+1) = POSI(I) + NPRW(I,1)+INT(RWBUF(8,I))
616 ENDDO
617 CALL QUICKSORT_I2(IDS, IDX, 1, NRWALL)
618
619! Loop over RWALLs
620 DO II = 1,NRWALL
621
622 MY_RWALL = IDX(II)
623 TITR(1:nchartitle)=''
624 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,MY_RWALL),LTITR)
625 MY_ID = NOM_OPT(1,MY_RWALL + INOM_OPT(5))
626 IF (LEN_TRIM(TITR) /= 0) THEN
627 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
628 ELSE
629 CALL QAPRINT('a_rwall_fake_name',MY_ID,0.0_8)
630 END IF
631
632 DO I = 1,NNPRW
633 IF (NPRW(MY_RWALL,I) /= 0) THEN
634
635
636 WRITE(VARNAME,'(a,i0)') 'nprw_',I
637 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),NPRW(MY_RWALL,I),0.0_8)
638 END IF
639 END DO
640
641 DO I = 1,NRWLP
642 IF (RWBUF(I,MY_RWALL) /= ZERO) THEN
643
644
645 WRITE(VARNAME,'(a,i0)') 'rwbuf_',I
646 TEMP_DOUBLE = RWBUF(I,MY_RWALL)
647 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
648 END IF
649 END DO
650
651 DO I = POSI(MY_RWALL),POSI(MY_RWALL+1)-1
652 IF (LPRW(I) /= 0) THEN
653
654
655 WRITE(VARNAME,'(a,i0)') 'lprw_',I-POSI(MY_RWALL)+1
656 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),LPRW(I),0.0_8)
657 END IF
658 END DO
659
660 END DO
661
662 ENDIF
663 ENDIF
664
665
666
667 IF (MYQAKEY('/rbe3')) THEN
668 IADS = SLRBE3/2
669 DO MY_CONSTRAINT=1,NRBE3
670
671 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,MY_CONSTRAINT + INOM_OPT(14)),LTITR)
672 MY_ID = IRBE3(2,MY_CONSTRAINT)
673 IF(LEN_TRIM(TITR)/=0)THEN
674 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
675 ELSE
676 CALL QAPRINT('a_rbe3_fake_name',MY_ID,0.0_8)
677 END IF
678
679 DO I=1,NRBE3L
680 IF(IRBE3(I,MY_CONSTRAINT) /=0)THEN
681
682
683 WRITE(VARNAME,'(a,i0)') 'irbe3_',I
684 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),IRBE3(I,MY_CONSTRAINT),0.0_8)
685 END IF
686 END DO
687
688 DO I=IRBE3(1,MY_CONSTRAINT)+1,IRBE3(1,MY_CONSTRAINT)+IRBE3(5,MY_CONSTRAINT)
689
690
691 WRITE(VARNAME,'(a,i0)') 'lrbe3_',I
692 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),LRBE3(I),0.0_8)
693 END DO
694
695 DO I=IRBE3(1,MY_CONSTRAINT)+1,IRBE3(1,MY_CONSTRAINT)+IRBE3(5,MY_CONSTRAINT)
696
697
698 WRITE(VARNAME,'(a,i0)') 'lrbe3s_',I
699 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),LRBE3(I+IADS),0.0_8)
700 END DO
701
702 DO I=IRBE3(1,MY_CONSTRAINT)+1,IRBE3(1,MY_CONSTRAINT)+IRBE3(5,MY_CONSTRAINT)
703
704 DO II = 1,6
705.AND. IF(FRBE3(II,I) /=ONEFRBE3(II,I) /=ZERO)THEN
706 WRITE(VARNAME,'(a,i1,a,i0)') 'frbe3_',II,'_',I
707 TEMP_DOUBLE = FRBE3(II,I)
708 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
709 END IF
710 END DO !II = 1,6
711 END DO
712
713 END DO ! MY_CONSTRAINT=1,NRBE3
714 END IF
715
716
717
718 IF (MYQAKEY('/
merge')) THEN
719 II = 1
720 DO MY_CONSTRAINT=1,NRBMERGE
721
722 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,INOM_OPT(30)+MY_CONSTRAINT),LTITR)
723 MY_ID = MGRBY(6,II)
724 IF(LEN_TRIM(TITR)/=0)THEN
725 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
726 ELSE
727 CALL QAPRINT('a_merge_fake_name',MY_ID,0.0_8)
728 END IF
729
730 DO MY_MERGE=II,SMGRBY
731 IF(MGRBY(6,MY_MERGE) /= MY_ID) THEN
732 II = MY_MERGE
733 EXIT
734 ENDIF
735 DO I=1,NMGRBY
736 IF(MGRBY(I,MY_MERGE) /=0)THEN
737
738 WRITE(VARNAME,'(a,i0)') 'mgrby_',I
739 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),MGRBY(I,MY_MERGE),0.0_8)
740 END IF
741 END DO
742 END DO ! MY_MERGE=II,SMGRBY
743
744 END DO ! MY_CONSTRAINT=1,NRBMERGE
745 END IF
746
747
748
749 IF (MYQAKEY('/sphbcs')) THEN
750 DO MY_CONSTRAINT=1,NSPCOND
751
752 TITR(1:nchartitle)=''
753 my_id = ispcond(4,my_constraint)
754 IF(len_trim(titr)/=0)THEN
755 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
756 ELSE
757 CALL qaprint(
'A_SPHBCS_FAKE_NAME',my_id,0.0_8)
758 END IF
759
760 DO i=1,nispcond
761 IF(ispcond(i,my_constraint)/=0)THEN
762
763 WRITE(varname,'(A,I0,I0)') 'ISPCOND_',i
764 CALL qaprint(varname(1:len_trim(varname)),ispcond(i,my_constraint),0.0_8)
765 END IF
766
767 END DO
768
769 END DO
770 END IF
771
772
773
775 DO my_constraint=1,nrbe2
776
777 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,my_constraint + inom_opt(13)),ltitr)
778 my_id = irbe2(2,my_constraint)
779 IF(len_trim(titr)/=0)THEN
780 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
781 ELSE
782 CALL qaprint(
'A_RBE2_FAKE_NAME',my_id,0.0_8)
783 END IF
784
785 DO i=1,nrbe2l
786 IF(irbe2(i,my_constraint) /=0)THEN
787
788
789 WRITE(varname,'(A,I0)') 'IRBE2_',i
790 CALL qaprint(varname(1:len_trim(varname)),irbe2(i,my_constraint),0.0_8)
791 END IF
792 END DO
793
794 DO i=irbe2(1,my_constraint)+1,irbe2(1,my_constraint)+irbe2(5,my_constraint)
795
796
797 WRITE(varname,'(A,I0)') 'LRBE2_',i
798 CALL qaprint(varname(1:len_trim(varname)),lrbe2(i),0.0_8)
799 END DO
800
801 END DO
802 END IF
803
804
805
807 ii=0
808 DO my_constraint=1,nummpc
809
810 CALL fretitl2(titr,nom_opt(lnopt1-ltitr+1,inom_opt(17) + my_constraint),ltitr)
811
812 my_id = nom_opt(1,inom_opt(17)+my_constraint)
813 IF(len_trim(titr)/=0)THEN
814 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
815 ELSE
816 CALL qaprint(
'A_MPC_FAKE_NAME',my_id,0.0_8)
817 END IF
818
819 DO i=1,ibmpc(my_constraint)
820
821 IF(ibmpc2(ii+i) /=0)THEN
822
823 WRITE(varname,'(A,I0)') 'nod_',I
824 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),IBMPC2(II+I),0.0_8)
825 END IF
826
827 IF(IBMPC3(II+I) /=0)THEN
828
829 WRITE(VARNAME,'(a,i0') 'idof_',I
830 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),IBMPC3(II+I),0.0_8)
831 END IF
832
833 IF(IBMPC4(II+I) /=0)THEN
834
835 WRITE(VARNAME,'(a,i0)') 'iskew_',I
836 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),IBMPC4(II+I),0.0_8)
837 END IF
838
839 IF(RBMPC(II+I) /=0)THEN
840 WRITE(VARNAME,'(a,i1,a,i0)') 'alpha_',I
841 TEMP_DOUBLE = RBMPC(II+I)
842 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
843 END IF
844
845 END DO
846 II = II + IBMPC(MY_CONSTRAINT)
847
848 END DO ! MY_CONSTRAINT=1,NUMMPC
849 END IF
850
851
852
853 IF (MYQAKEY('/cyl_joint')) THEN
854
855 II = 1
856
857 DO MY_CONSTRAINT=1,NJOINT
858
859 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,INOM_OPT(7)+MY_CONSTRAINT),LTITR)
860 MY_ID = NOM_OPT(1,INOM_OPT(7)+MY_CONSTRAINT)
861 IF(LEN_TRIM(TITR)/=0)THEN
862 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
863 ELSE
864 CALL QAPRINT('a_cyljoint_fake_name',MY_ID,0.0_8)
865 END IF
866
867 NS = LJOINT(II)
868
869 DO I=1,NS
870 WRITE(VARNAME,'(a,i0)') 'nod_',I
871 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),ITAB(LJOINT(II+I)),0.0_8)
872 ENDDO
873
874 II=II+NS+1
875
876 END DO
877 END IF
878
879
880
881 IF (MYQAKEY('/gjoint')) THEN
882
883 DO MY_CONSTRAINT=1,NGJOINT
884
885 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,INOM_OPT(18) + MY_CONSTRAINT),LTITR)
886 MY_ID = NOM_OPT(1,INOM_OPT(18)+MY_CONSTRAINT)
887 IF(LEN_TRIM(TITR)/=0)THEN
888 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
889 ELSE
890 CALL QAPRINT('a_gjoint_fake_name',MY_ID,0.0_8)
891 END IF
892
893 DO I=1,LKJNI
894 WRITE(VARNAME,'(a,i0)') 'gjbufi_',I
895 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),GJBUFI(I,MY_CONSTRAINT),0.0_8)
896 ENDDO
897
898 DO I=1,LKJNR
899 WRITE(VARNAME,'(a,i0)') 'gjbufr_',I
900 TEMP_DOUBLE = GJBUFR(I,MY_CONSTRAINT)
901 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
902 ENDDO
903
904 DO I=1,4
905 WRITE(VARNAME,'(a,i0)') 'mass_',I
906 IF (GJBUFI(2+I,MY_CONSTRAINT) > 0) THEN
907 TEMP_DOUBLE = MS(GJBUFI(2+I,MY_CONSTRAINT))
908 ELSE
909 TEMP_DOUBLE = ZERO
910 ENDIF
911 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
912 ENDDO
913
914 DO I=1,4
915 WRITE(VARNAME,'(a,i0)') 'iner_',I
916 IF (GJBUFI(2+I,MY_CONSTRAINT) > 0) THEN
917 TEMP_DOUBLE = IN(GJBUFI(2+I,MY_CONSTRAINT))
918 ELSE
919 TEMP_DOUBLE = ZERO
920 ENDIF
921 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
922 ENDDO
923
924 END DO
925 END IF
926
927
928
929 IF (MYQAKEY('/rlink')) THEN
930
931 IF (NLINK > 0) THEN
932
933
934 DO MY_CONSTRAINT = 1, NLINK
935
936 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,INOM_OPT(9)+MY_CONSTRAINT),LTITR)
937 MY_ID = NOM_OPT(1,INOM_OPT(9)+MY_CONSTRAINT)
938 IF(LEN_TRIM(TITR)/=0)THEN
939 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
940 ELSE
941 CALL QAPRINT('a_rlink_name',MY_ID,0.0_8)
942 END IF
943
944 DO I = 1,10
945 IF(NNLINK(I,MY_CONSTRAINT) /=0)THEN
946 WRITE(VARNAME,'(a,i0)') 'nnlink_',I
947 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),NNLINK(I,MY_CONSTRAINT),0.0_8)
948 END IF
949 ENDDO
950
951 ENDDO
952 DO I = 1,SLNLINK
953 IF(LNLINK(I) /=0)THEN
954 WRITE(VARNAME,'(a,i0)') 'lnlink_',I
955 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),LNLINK(I),0.0_8)
956 END IF
957 ENDDO
958
959
960 ENDIF
961 END IF
962
963
964
965 IF (MYQAKEY('/ale/link')) THEN
966 DO II = 1, LLINAL
967 WRITE(VARNAME,'(a,i0)') 'linale_', II
968 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),LINALE(II),0.0_8)
969 ENDDO
970 ENDIF
971
972
973
974 IF (MYQAKEY('/fxbody')) THEN
975 IF (NFXBODY > 0) THEN
976
977! Sort by ID to ensure internal order independent output
978 DO I = 1, NFXBODY
979 IDSFX(I) = FXBIPM(1,I)
980 IDXFX(I) = I
981 ENDDO
982 CALL QUICKSORT_I2(IDSFX, IDXFX, 1, NFXBODY)
983
984! Loop over FXBODY
985 DO II = 1,NFXBODY
986
987 MY_FXBODY = IDXFX(II)
988 TITR(1:nchartitle)=''
989 CALL FRETITL2(TITR,NOM_OPT(LNOPT1-LTITR+1,INOM_OPT(11)+MY_FXBODY),LTITR)
990 MY_ID = NOM_OPT(1,INOM_OPT(11)+MY_FXBODY)
991 IF (LEN_TRIM(TITR) /= 0) THEN
992 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
993 ELSE
994 CALL QAPRINT('a_fxbody_fake_name',MY_ID,0.0_8)
995 END IF
996
997 DO I = 1,NBIPM
998 IF (FXBIPM(I,MY_FXBODY) /= 0) THEN
999 WRITE(VARNAME,'(a,i0)') 'fxbipm_',I
1000 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),FXBIPM(I,MY_FXBODY),0.0_8)
1001 ENDIF
1002 ENDDO
1003
1004 CALL QAPRINT('fxbody_file_name',0,0.0_8)
1005 CALL QAPRINT(FXBFILE_TAB(MY_FXBODY)(1:LEN_TRIM(FXBFILE_TAB(MY_FXBODY))),0,0.0_8)
1006
1007 ENDDO
1008 ENDIF
1009 ENDIF
1010
1011 RETURN
subroutine merge(x, itab, itabm1, cmerge, imerge, imerge2, iadmerge2, nmerge_tot)
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',...