32 1 XSEED ,UNITAB ,QP_IPERTURB,QP_RPERTURB,
33 2 EIGIPM , EIGRPM ,DEFAULTS,DAMP_RANGE_PART)
45#include "implicit_f.inc"
59#include "tabsiz_c.inc"
60#include "random_c.inc"
67 INTEGER,
INTENT(IN) :: NOM_OPT(LNOPT1,SNOM_OPT1), INOM_OPT(SINOM_OPT),
68 . IRAND(*),QP_IPERTURB(NPERTURB,6),EIGIPM(NEIPM,*)
69 my_real,
INTENT(IN) :: dampr(nrdamp,*),alea(*),xseed(*),eigrpm(nerpm,*)
70 my_real,
INTENT(IN) :: qp_rperturb(nperturb,4)
71 INTEGER,
INTENT(IN) :: DAMP_RANGE_PART(NPART)
72 TYPE (UNIT_TYPE_) ::UNITAB
73 TYPE(defaults_) ,
INTENT(IN) :: DEFAULTS
77 INTEGER I,II,J,IPERT,MY_ID, MY_DAMP, MY_CONSTRAINT,TEMP_INT,
78 . MY_RAND, MY_UNIT, MY_DEFAULTINTER,LENRNOISE,
79 . ids(nperturb),idx(nperturb),idseig(neig),idxeig(neig),my_eig
80 CHARACTER(LEN=NCHARTITLE) :: TITR
81 INTEGER IHBE_DS,ISST_DS,IPLA_DS,IFRAME_DS,ITET4_D,ITET10_D,ICPRE_D,IMAS_DS,
82 . ihbe_d,ipla_d,istr_d,ithk_d,ishea_d,isst_d,
83 . ish3n_d, istra_d,npts_d,idril_d,ioffset,def_inter(100)
84 CHARACTER (LEN=255) :: VARNAME
85 DOUBLE PRECISION TEMP_DOUBLE
90 ihbe_ds= defaults%SOLID%ISOLID
91 isst_ds= defaults%SOLID%ISMSTR
92 icpre_d= defaults%SOLID%ICPRE
93 itet4_d= defaults%SOLID%ITETRA4
94 itet10_d= defaults%SOLID%ITETRA10
95 imas_ds= defaults%SOLID%IMAS
96 iframe_ds= defaults%SOLID%IFRAME
98 ihbe_d = defaults%SHELL%ishell
99 ish3n_d= defaults%SHELL%ish3n
100 isst_d = defaults%SHELL%ismstr
101 ipla_d = defaults%SHELL%iplas
102 ithk_d = defaults%SHELL%ithick
103 idril_d= defaults%SHELL%idrill
114 my_id = nint(dampr(1,my_damp))
115 IF(len_trim(titr)/=0)
THEN
116 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
118 CALL qaprint(
'A_DAMP_FAKE_NAME', my_id,0.0_8)
122 IF(dampr(i,my_damp)/=zero)
THEN
125 WRITE(varname,
'(A,I0)')
'DAMPR_',i
126 temp_double = dampr(i,my_damp)
127 CALL qaprint(varname(1:len_trim(varname))
136 IF (
myqakey(
'/DAMP/INTER'))
THEN
140 my_id = nint(dampr(1,my_damp))
141 IF(len_trim(titr)/=0)
THEN
142 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
144 CALL qaprint(
'A_DAMP_INTER_FAKE_NAME', my_id,0.0_8
148 IF(dampr(i,my_damp)/=zero
THEN
151 WRITE(varname,'(a,i0)
') 'dampr_
',I
152 TEMP_DOUBLE = DAMPR(I,MY_DAMP)
153 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
157 IF(IDAMP_RDOF/=ZERO)THEN
158 WRITE(VARNAME,'(a)
') 'idamp_rdof_
'
159 TEMP_DOUBLE = IDAMP_RDOF
160 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
163 END DO ! MY_DAMP=1,NDAMP
168 IF (MYQAKEY('/damp/freq_range
')) THEN
171 IF (NINT(DAMPR(31,MY_DAMP))==1) THEN
172 TITR(1:nchartitle)=''
173 MY_ID = NINT(DAMPR(1,MY_DAMP))
174 IF(LEN_TRIM(TITR)/=0)THEN
175 CALL QAPRINT(TITR(1:LEN_TRIM(TITR)),MY_ID,0.0_8)
177 CALL QAPRINT('a_damp_inter_fake_name
', MY_ID,0.0_8)
181 IF(DAMPR(I,MY_DAMP)/=ZERO)THEN
184 WRITE(VARNAME,'(a,i0)
') 'dampr_
',I
185 TEMP_DOUBLE = DAMPR(I,MY_DAMP)
186 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
191 IF (DAMP_RANGE_PART(I) == MY_DAMP) THEN
192 WRITE(VARNAME,'(a)
') 'part_
'
194 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
200 END DO ! MY_DAMP=1,NDAMP
205 IF (MYQAKEY('/analy
')) THEN
207 CALL QAPRINT('analy
', 0,0.0_8)
209 WRITE(VARNAME,'(a)
') 'nanaly
'
211 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
213 WRITE(VARNAME,'(a)
') 'ipari0
'
215 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
221 IF (MYQAKEY('/def_solid
')) THEN
223 CALL QAPRINT('def_solid
', 0,0.0_8)
225 WRITE(VARNAME,'(a)
') 'isolid
'
227 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
229 WRITE(VARNAME,'(a)
') 'ismstr
'
231 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
233 WRITE(VARNAME,'(a)
') 'icpre
'
235 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
237 WRITE(VARNAME,'(a)
') 'istrain
'
239 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
241 WRITE(VARNAME,'(a)
') 'itetra4
'
243 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
245 WRITE(VARNAME,'(a)
') 'itetra10
'
247 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
249 WRITE(VARNAME,'(a)
') 'imas
'
251 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
253 WRITE(VARNAME,'(a)
') 'iframe
'
255 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
260 IF (MYQAKEY('/def_shell
')) THEN
262 CALL QAPRINT('def_shell
', 0,0.0_8)
264 WRITE(VARNAME,'(a)
') 'ishell
'
266 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
268 WRITE(VARNAME,'(a)
') 'ismstr
'
270 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
272 WRITE(VARNAME,'(a)
') 'ithick
'
274 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
276 WRITE(VARNAME,'(a)
') 'iplas
'
278 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
280 WRITE(VARNAME,'(a)
') 'istrain
'
282 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
284 WRITE(VARNAME,'(a)
') 'ish3n
'
286 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
288 WRITE(VARNAME,'(a)
') 'idrill
'
290 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
295 IF (MYQAKEY('/random
')) THEN
297 CALL QAPRINT('random
',0,0.0_8)
301 WRITE(VARNAME,'(a,i0)
') 'irand_
',MY_RAND
302 TEMP_INT = IRAND(MY_RAND)
303 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
305 IF(ALEA(MY_RAND)/=ZERO)THEN
307 WRITE(VARNAME,'(a,i0)
') 'alea_
',MY_RAND
308 TEMP_DOUBLE = ALEA(MY_RAND)
309 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
312 IF(XSEED(MY_RAND)/=ZERO)THEN
314 WRITE(VARNAME,'(a,i0)
') 'xseed_
',MY_RAND
315 TEMP_DOUBLE = XSEED(MY_RAND)
316 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),0,TEMP_DOUBLE)
319 END DO ! MY_RAND=1,NRAND
325 IF (MYQAKEY('/
IMPLICIT')) THEN
327 CALL QAPRINT('IMPLICIT',0,0.0_8)
329 WRITE(VARNAME,'(a,i0)
') 'iimplicit
'
331 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
333 WRITE(VARNAME,'(a,i0)
') 'ipla_d
'
335 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
337 WRITE(VARNAME,'(a,i0)
') 'ihbe_ds
'
339 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
341 WRITE(VARNAME,'(a,i0)
') 'ihbe_d
'
343 CALL QAPRINT(VARNAME(1:LEN_TRIM(VARNAME)),TEMP_INT,0.0_8)
345 WRITE(VARNAME,'(a,i0)
') 'idril_d'
347 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
357 WRITE(varname,
'(A,I0)')
'DECTYP'
359 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
361 WRITE(varname,
'(A,I0)')
'NSPMD'
363 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
365 WRITE(varname,
'(A,I0)')
'DECANI'
367 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
369 WRITE(varname,
'(A,I0)')
'DECMOT'
371 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
373 WRITE(varname,
'(A,I0)')
'DECNEQ'
375 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
377 WRITE(varname,
'(A,I0)')
'NTHREAD'
379 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
389 IF(spasort/=zero)
THEN
391 WRITE(varname,
'(A,I0)')
'SPASORT'
392 temp_double = spasort
393 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
396 WRITE(varname,
'(A,I0)')
'LVOISPH'
398 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
400 WRITE(varname,
'(A,I0)')
'KVOISPH'
402 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
404 WRITE(varname,
'(A,I0)')
'ITSOL2SPH'
406 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
416 WRITE(varname,
'(A,I0)')
'ICAA'
417 temp_int =
ale%GLOBAL%ICAA
418 CALL qaprint(varname(1:len_trim(varname
428 WRITE(varname,
'(A,I0)')
'IPRI'
430 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
432 WRITE(varname,
'(A,I0)')
'IOUTPUT'
434 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
436 WRITE(varname,
'(A,I0)')
'OUTYY_FMT'
438 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
440 WRITE(varname,
'(A,I0)')
'IROOTYY'
442 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
444 WRITE(varname,
'(A,I0)')
'IDROT'
446 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
448 WRITE(varname,
'(A,I0)')
'IRFORM'
450 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
460 WRITE(varname,
'(A,I0)')
'ISMS'
462 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
464 WRITE(varname,
'(A,I0)')
'IDTGRS'
466 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
468 WRITE(varname,
'(A,I0)')
'ISMS_SELEC'
469 temp_int = isms_selec
470 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
472 WRITE(varname,
'(A,I0)')
'IREST_MSELT'
473 temp_int = irest_mselt
474 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
476 IF(dt_sms_switch/=zero)
THEN
478 WRITE(varname,
'(A,I0)')
'DT_SMS_SWITCH'
479 temp_double = dt_sms_switch
480 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
489 DO my_unit=1,unitab%NUNITS
492 my_id = unitab%UNIT_ID(my_unit)
493 IF(len_trim(titr)/=0)
THEN
494 CALL qaprint(titr(1:len_trim(titr)),my_id,0.0_8)
496 CALL qaprint(
'A_UNIT_FAKE_NAME', my_id,0.0_8)
499 IF(unitab%FAC_M(my_unit)/=zero)
THEN
501 WRITE(varname,
'(A,I0)')
'FAC_M_',my_unit
502 temp_double = unitab%FAC_M(my_unit)
503 CALL qaprint(varname(1:len_trim(varname)),0,temp_double
506 IF(unitab%FAC_L(my_unit)/=zero)
THEN
508 WRITE(varname,
'(A,I0)')
'FAC_L_',my_unit
509 temp_double = unitab%FAC_L(my_unit)
510 CALL qaprint(varname(1:len_trim(varname)),0,temp_double
513 IF(unitab%FAC_T(my_unit)/=zero)
THEN
515 WRITE(varname,
'(A,I0)')
'FAC_T_',my_unit
516 temp_double = unitab%FAC_T(my_unit)
517 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
526 IF (
myqakey(
'/DEFAULT/INTER'))
THEN
528 def_inter(1:100) = defaults%interface%DEF_INTER(1:100)
529 CALL qaprint(
'/DEFAULT/INTER', 0,0.0_8)
531 DO my_defaultinter=1,100
533 IF(def_inter(my_defaultinter) /= 0)
THEN
534 WRITE(varname,
'(A,I0)')
'DEF_INTER_',my_defaultinter
535 temp_int = def_inter(my_defaultinter)
536 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
547 IF (iintthick > 0)
THEN
548 CALL qaprint(
'/INTTHICK',0,0.0_8)
549 WRITE(varname,
'(A)')
'INTTHICK_'
551 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
560 temp_double =
ale%GRID%ALPHA
561 WRITE(varname,
'(A)')
'ALPHA_'
562 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
563 temp_double =
ale%GRID%GAMMA
564 WRITE(varname,
'(A)')
'GAMMA_'
565 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
566 temp_double =
ale%GRID%VGX
567 WRITE(varname,
'(A)')
'VGX_'
568 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
569 temp_double =
ale%GRID%VGY
570 WRITE(varname,
'(A)')
'VGY_'
571 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
572 temp_double =
ale%GRID%VGZ
573 WRITE(varname,
'(A)')
'VGZ_'
574 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
581 IF (ishfram > 0)
THEN
582 CALL qaprint(
'/ISHFRA',0,0.0_8)
583 WRITE(varname,
'(A)')
'ISHFRAM_'
585 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
594 temp_double =
ale%UPWIND%UPWMG
595 WRITE(varname,
'(A)')
'UPCOEF1_'
596 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
597 temp_double =
ale%UPWIND%UPWOG
598 WRITE(varname,
'(A)')
'UPCOEF2_'
599 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
600 temp_double =
ale%UPWIND%UPWSM
601 WRITE(varname,
'(A)')
'UPCOEF3_'
602 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
610 IF (nperturb > 0)
THEN
614 ids(i) = qp_iperturb(i,1)
623 CALL qaprint(
'/PERTURB_FAKE_NAME',ii,0.0_8)
626 WRITE(varname,
'(A,I0)')
'QP_IPERTURB_',i
627 temp_int = qp_iperturb(my_id,i)
628 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
632 WRITE(varname,
'(A,I0)')
'QP_RPERTURB_',i
633 temp_double = qp_rperturb(my_id,i)
634 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
647 CALL qaprint(
'STAMPING',0,0.0_8)
649 WRITE(varname,
'(A,I0)')
'ISTAMPING'
651 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
660 idseig(i) = eigipm(1,i)
668 WRITE(varname,
'(A,I0)')
'EIGID_',my_eig
669 temp_int = eigipm(1,my_eig)
670 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)
673 IF(eigipm(i,my_eig) /=0)
THEN
675 WRITE(varname,
'(A,I0)')
'EIGIPM_',i
676 CALL qaprint(varname(1:len_trim(varname)),eigipm(i,my_eig),0.0_8)
681 IF(eigrpm(i,my_eig
THEN
682 WRITE(varname,
'(A,I0)')
'EIGRPM_',i
683 temp_double = eigrpm(i,my_eig)
684 CALL qaprint(varname(1:len_trim(varname)),0,temp_double)
694 IF (
myqakey(
'/ANIM/VERS'))
THEN
696 WRITE(varname,
'(A)')
'ANIM_VERS'
698 CALL qaprint(varname(1:len_trim(varname)),temp_int,0.0_8)