OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
uaccess.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| uaccess_dum ../engine/source/user_interface/uaccess.F
25!||--- called by ------------------------------------------------------
26!|| radioss2 ../engine/source/engine/radioss2.F
27!||====================================================================
28 SUBROUTINE uaccess_dum(IERR)
29C-----------------------------------------------
30C I m p l i c i t T y p e s
31C-----------------------------------------------
32#include "implicit_f.inc"
33 INTEGER IERR
34 ierr=0
35 END
36!||====================================================================
37!|| get_u_cycle ../engine/source/user_interface/uaccess.F
38!||====================================================================
39 INTEGER FUNCTION get_u_cycle()
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47#include "com01_c.inc"
48C-----------------------------------------------
49 get_u_cycle = ncycle
50 RETURN
51 END
52#include "my_real.inc"
53!||====================================================================
54!|| get_u_time ../engine/source/user_interface/uaccess.F
55!||--- called by ------------------------------------------------------
56!|| ruser46 ../engine/source/elements/spring/ruser46.F
57!||====================================================================
58 my_real FUNCTION get_u_time()
59C-----------------------------------------------
60C I m p l i c i t T y p e s
61C-----------------------------------------------
62#include "implicit_f.inc"
63C-----------------------------------------------
64C C o m m o n B l o c k s
65C-----------------------------------------------
66#include "com08_c.inc"
67C-----------------------------------------------
68 get_u_time = tt
69 RETURN
70 END
71!||====================================================================
72!|| get_u_accel ../engine/source/user_interface/uaccess.F
73!||--- calls -----------------------------------------------------
74!|| get_var_user_f ../engine/source/user_interface/eng_callback_c.c
75!|| get_var_user_f_sp ../engine/source/user_interface/eng_callback_c.c
76!||====================================================================
77 INTEGER FUNCTION get_u_accel(NACC, AX,AY,AZ)
78C-----------------------------------------------
79C I m p l i c i t T y p e s
80C-----------------------------------------------
81#include "implicit_f.inc"
82C-----------------------------------------------
83C C o m m o n B l o c k s
84C-----------------------------------------------
85#include "scr05_c.inc"
86C-----------------------------------------------
87C D u m m y A r g u m e n t s
88C-----------------------------------------------
89 INTEGER nacc
90 my_real ax,ay,az
91C-----------------------------------------------
92C L o c a l V a r i a b l e s
93C-----------------------------------------------
94 INTEGER i, k, l, iacc,d1,d2,D3
95C-----------------------------------------------
96 IF (nacc<=0) THEN
97 ax = zero
98 ay = zero
99 az = zero
100 get_u_accel = -1
101 ELSE
102 l = (nacc-1)*25
103 d1 = l+20
104 d2 = l+21
105 d3 = l+22
106 IF (iresp == 1) THEN
107 CALL get_var_user_f_sp(12,d1,ax)
108 CALL get_var_user_f_sp(12,d2,ay)
109 CALL get_var_user_f_sp(12,d3,az)
110 ELSE
111 CALL get_var_user_f(12,d1,ax)
112 CALL get_var_user_f(12,d2,ay)
113 CALL get_var_user_f(12,d3,az)
114 ENDIF
115 get_u_accel = 0
116 ENDIF
117C
118 RETURN
119 END
120!||====================================================================
121!|| get_u_numacc ../engine/source/user_interface/uaccess.F
122!||--- calls -----------------------------------------------------
123!|| get_var_user_i ../engine/source/user_interface/eng_callback_c.c
124!||====================================================================
125 INTEGER FUNCTION get_u_numacc(IDACC)
126C-----------------------------------------------
127C I m p l i c i t T y p e s
128C-----------------------------------------------
129#include "implicit_f.inc"
130C-----------------------------------------------
131C C o m m o n B l o c k s
132C-----------------------------------------------
133#include "com04_c.inc"
134C-----------------------------------------------
135C D u m m y A r g u m e n t s
136C-----------------------------------------------
137 INTEGER, INTENT(IN) :: idacc
138C-----------------------------------------------
139C L o c a l V a r i a b l e s
140C-----------------------------------------------
141 INTEGER depla,j,id
142C-----------------------------------------------
143C S o u r c e L i n e s
144C-----------------------------------------------
145 get_u_numacc = 0
146 IF(idacc<=0)THEN
147 RETURN
148 ENDIF
149C---
150 DO j=1,naccelm
151 depla = (j-1)*3+1
152 CALL get_var_user_i(5,depla,id)
153 IF(idacc==id)THEN
154 get_u_numacc = j
155 RETURN
156 ENDIF
157 ENDDO
158C---
159 RETURN
160 END
161!||====================================================================
162!|| get_u_numnod ../engine/source/user_interface/uaccess.F
163!||--- calls -----------------------------------------------------
164!|| ancmsg ../engine/source/output/message/message.F
165!|| get_var_user_i ../engine/source/user_interface/eng_callback_c.c
166!||--- uses -----------------------------------------------------
167!|| message_mod ../engine/share/message_module/message_mod.F
168!||====================================================================
169 INTEGER FUNCTION get_u_numnod(IU)
170C-----------------------------------------------
171C M o d u l e s
172C-----------------------------------------------
173 USE message_mod
174C-----------------------------------------------
175C I m p l i c i t T y p e s
176C-----------------------------------------------
177#include "implicit_f.inc"
178C-----------------------------------------------
179C C o m m o n B l o c k s
180C-----------------------------------------------
181#include "com01_c.inc"
182#include "com04_c.inc"
183#include "warn_c.inc"
184C-----------------------------------------------
185C D u m m y A r g u m e n t s
186C-----------------------------------------------
187 INTEGER,INTENT(IN) :: iu
188C-----------------------------------------------
189C L o c a l V a r i a b l e s
190C-----------------------------------------------
191 INTEGER j, jinf, jsup, itab1, itab2
192 CHARACTER mess*40
193 DATA mess/'USER SENSOR '/
194C-----------------------------------------------
195C S o u r c e L i n e s
196C-----------------------------------------------
197 jinf=1
198 jsup=numnod
199 j=(jsup+jinf)/2
200 10 CALL get_var_user_i(13,j,itab1)
201 IF(jsup<=jinf.AND.(iu-itab1)/=0) THEN
202 IF(nspmd==1) THEN
203 CALL ancmsg(msgid=186,anmode=aninfo_blind,
204 . i1=iu,c1=mess)
205 ierr=ierr+1
206 END IF
207C en SPMD la valeur 0 n indique pas une erreur mais l absence du noeud sur le proc
209 RETURN
210 ENDIF
211 IF((iu-itab1)==0)THEN
212C >CAS IU=TABM FIN DE LA RECHERCHE
213 CALL get_var_user_i(13,j+numnod,itab2)
214 get_u_numnod=itab2
215 RETURN
216 ELSE IF (iu-itab1<0) THEN
217C >CAS IU<TABM
218 jsup=j-1
219 ELSE
220C >CAS IU>TABM
221 jinf=j+1
222 ENDIF
223 j=(jsup+jinf)/2
224 GO TO 10
225C---
226 RETURN
227 END
228C
229!||====================================================================
230!|| get_u_nod_x ../engine/source/user_interface/uaccess.F
231!||--- calls -----------------------------------------------------
232!|| get_var_user_f ../engine/source/user_interface/eng_callback_c.c
233!|| get_var_user_f_sp ../engine/source/user_interface/eng_callback_c.c
234!|| get_var_user_i ../engine/source/user_interface/eng_callback_c.c
235!|| spmd_glob_dsum ../engine/source/mpi/interfaces/spmd_th.F
236!|| spmd_rbcast ../engine/source/mpi/generic/spmd_rbcast.F
237!||====================================================================
238 INTEGER FUNCTION get_u_nod_x(NOD, X,Y,Z)
239C En SPMD, tous les procs doivent appeler cette fonction
240C sinon blocage
241C-----------------------------------------------
242C I m p l i c i t T y p e s
243C-----------------------------------------------
244#include "implicit_f.inc"
245C-----------------------------------------------
246C C o m m o n B l o c k s
247C-----------------------------------------------
248#include "com01_c.inc"
249#include "scr05_c.inc"
250#include "userlib.inc"
251C-----------------------------------------------
252C D u m m y A r g u m e n t s
253C-----------------------------------------------
254 INTEGER,INTENT(IN) :: nod
255 my_real,INTENT(INOUT) :: x,y,z
256C-----------------------------------------------
257C L o c a l V a r i a b l e s
258C-----------------------------------------------
259 INTEGER l,d1,d2,d3, p
260 my_real bufs(6)
261C-----------------------------------------------
262C S o u r c e L i n e s
263C-----------------------------------------------
264 IF (nod>0) THEN
265 IF(nspmd>1) THEN
266C get_proc_user_f retourne 1 si weight(nod) = 1, , 0 sinon
267C weight : pointeur 18 (cf resol.F)
268 CALL get_var_user_i(18,nod,p)
269 ELSE
270 p = 1
271 ENDIF
272 IF(p==1) THEN
273 l=(nod-1)*3
274 d1=l+1
275 d2=l+2
276 d3=l+3
277 IF (iresp == 1) THEN
278 CALL get_var_user_f_sp(14,d1,x)
279 CALL get_var_user_f_sp(14,d2,y)
280 CALL get_var_user_f_sp(14,d3,z)
281 ELSE
282 CALL get_var_user_f(14,d1,x)
283 CALL get_var_user_f(14,d2,y)
284 CALL get_var_user_f(14,d3,z)
285 ENDIF
286 ENDIF
287C
288C SPMD communication du resultat a ts les procs
289C
290 IF(nspmd>1.AND.getunod_nocom==0) THEN
291 IF(p==1) THEN
292 bufs(1) = x
293 bufs(2) = y
294 bufs(3) = z
295 ELSE
296 bufs(1) = zero
297 bufs(2) = zero
298 bufs(3) = zero
299 ENDIF
300 CALL spmd_glob_dsum(bufs,3,bufs(4))
301 CALL spmd_rbcast(bufs,bufs,3,1,0,2)
302 x = bufs(1)
303 y = bufs(2)
304 z = bufs(3)
305 ENDIF
306C
307C Fin SPMD
308C
309 get_u_nod_x = 0
310 RETURN
311 ENDIF
312 get_u_nod_x = -1
313 x = zero
314 y = zero
315 z = zero
316C
317 RETURN
318 END
319!||====================================================================
320!|| get_u_nod_d ../engine/source/user_interface/uaccess.f
321!||--- calls -----------------------------------------------------
322!|| get_var_user_f ../engine/source/user_interface/eng_callback_c.c
323!|| get_var_user_f_sp ../engine/source/user_interface/eng_callback_c.c
324!|| get_var_user_i ../engine/source/user_interface/eng_callback_c.c
325!|| spmd_glob_dsum ../engine/source/mpi/interfaces/spmd_th.F
326!|| spmd_rbcast ../engine/source/mpi/generic/spmd_rbcast.F
327!||====================================================================
328 INTEGER FUNCTION get_u_nod_d(NOD, DX,DY,DZ)
329C En SPMD, tous les procs doivent appeler cette fonction
330C sinon blocage
331C-----------------------------------------------
332C I m p l i c i t T y p e s
333C-----------------------------------------------
334#include "implicit_f.inc"
335C-----------------------------------------------
336C C o m m o n B l o c k s
337C-----------------------------------------------
338#include "com01_c.inc"
339#include "scr05_c.inc"
340#include "userlib.inc"
341C-----------------------------------------------
342C D u m m y A r g u m e n t s
343C-----------------------------------------------
344 INTEGER,INTENT(IN) :: nod
345 my_real,INTENT(INOUT) :: dx,dy,dz
346C-----------------------------------------------
347C L o c a l V a r i a b l e s
348C-----------------------------------------------
349 INTEGER l,d1,d2,d3, p
350 my_real bufs(6)
351C-----------------------------------------------
352C S o u r c e L i n e s
353C-----------------------------------------------
354 IF (nod>0) THEN
355 IF(nspmd>1) THEN
356C get_proc_user_f retourne 1 si weight(nod) = 1, , 0 sinon
357C weight : pointeur 18 (cf resol.F)
358 CALL get_var_user_i(18,nod,p)
359 ELSE
360 p = 1
361 ENDIF
362 IF(p==1) THEN
363 l=(nod-1)*3
364 d1=l+1
365 d2=l+2
366 d3=l+3
367 IF (iresp == 1) THEN
368 CALL get_var_user_f_sp(15,d1,dx)
369 CALL get_var_user_f_sp(15,d2,dy)
370 CALL get_var_user_f_sp(15,d3,dz)
371 ELSE
372 CALL get_var_user_f(15,d1,dx)
373 CALL get_var_user_f(15,d2,dy)
374 CALL get_var_user_f(15,d3,dz)
375 ENDIF
376 ENDIF
377C
378C SPMD communication du resultat a ts les procs
379C
380 IF(nspmd>1.AND.getunod_nocom==0) THEN
381 IF(p==1) THEN
382 bufs(1) = dx
383 bufs(2) = dy
384 bufs(3) = dz
385 ELSE
386 bufs(1) = zero
387 bufs(2) = zero
388 bufs(3) = zero
389 ENDIF
390 CALL spmd_glob_dsum(bufs,3,bufs(4))
391 CALL spmd_rbcast(bufs,bufs,3,1,0,2)
392 dx = bufs(1)
393 dy = bufs(2)
394 dz = bufs(3)
395 ENDIF
396C
397C Fin SPMD
398C
399 get_u_nod_d= 0
400 RETURN
401 ENDIF
402 get_u_nod_d= -1
403 dx = zero
404 dy = zero
405 dz = zero
406C
407 RETURN
408 END
409!||====================================================================
410!|| get_u_nod_v ../engine/source/user_interface/uaccess.F
411!||--- calls -----------------------------------------------------
412!|| get_var_user_f ../engine/source/user_interface/eng_callback_c.c
413!|| get_var_user_f_sp ../engine/source/user_interface/eng_callback_c.c
414!|| get_var_user_i ../engine/source/user_interface/eng_callback_c.c
415!|| spmd_glob_dsum ../engine/source/mpi/interfaces/spmd_th.F
416!|| spmd_rbcast ../engine/source/mpi/generic/spmd_rbcast.F
417!||====================================================================
418 INTEGER FUNCTION get_u_nod_v(NOD, VX,VY,VZ)
419C En SPMD, tous les procs doivent appeler cette fonction
420C sinon blocage
421C-----------------------------------------------
422C I m p l i c i t T y p e s
423C-----------------------------------------------
424#include "implicit_f.inc"
425C-----------------------------------------------
426C C o m m o n B l o c k s
427C-----------------------------------------------
428#include "com01_c.inc"
429#include "scr05_c.inc"
430#include "userlib.inc"
431C-----------------------------------------------
432C D u m m y A r g u m e n t s
433C-----------------------------------------------
434 INTEGER nod
435 my_real
436 . vx,vy,vz
437C-----------------------------------------------
438C L o c a l V a r i a b l e s
439C-----------------------------------------------
440 INTEGER l,d1,d2,d3, p
441 my_real
442 . bufs(6)
443C-----------------------------------------------
444C S o u r c e L i n e s
445C-----------------------------------------------
446 IF (nod>0) THEN
447 IF(nspmd>1) THEN
448C get_proc_user_f retourne 1 si weight(nod) = 1, , 0 sinon
449C weight : pointeur 18 (cf resol.F)
450 CALL get_var_user_i(18,nod,p)
451 ELSE
452 p = 1
453 ENDIF
454 IF(p==1) THEN
455 l=(nod-1)*3
456 d1=l+1
457 d2=l+2
458 d3=l+3
459 IF (iresp == 1) THEN
460 CALL get_var_user_f_sp(16,d1,vx)
461 CALL get_var_user_f_sp(16,d2,vy)
462 CALL get_var_user_f_sp(16,d3,vz)
463 ELSE
464 CALL get_var_user_f(16,d1,vx)
465 CALL get_var_user_f(16,d2,vy)
466 CALL get_var_user_f(16,d3,vz)
467 ENDIF
468C
469C SPMD communication du resultat a ts les procs
470C
471 ENDIF
472 IF(nspmd>1.AND.getunod_nocom==0) THEN
473 IF(p==1) THEN
474 bufs(1) = vx
475 bufs(2) = vy
476 bufs(3) = vz
477 ELSE
478 bufs(1) = zero
479 bufs(2) = zero
480 bufs(3) = zero
481 ENDIF
482 CALL spmd_glob_dsum(bufs,3,bufs(4))
483 CALL spmd_rbcast(bufs,bufs,3,1,0,2)
484 vx = bufs(1)
485 vy = bufs(2)
486 vz = bufs(3)
487 ENDIF
488C
489C Fin SPMD
490C
491 get_u_nod_v= 0
492 RETURN
493 ENDIF
494 get_u_nod_v= -1
495 vx = zero
496 vy = zero
497 vz = zero
498C
499 RETURN
500 END
501!||====================================================================
502!|| get_u_nod_a ../engine/source/user_interface/uaccess.F
503!||--- calls -----------------------------------------------------
504!|| get_var_user_f ../engine/source/user_interface/eng_callback_c.c
505!|| get_var_user_f_sp ../engine/source/user_interface/eng_callback_c.c
506!|| get_var_user_i ../engine/source/user_interface/eng_callback_c.c
507!|| spmd_glob_dsum ../engine/source/mpi/interfaces/spmd_th.F
508!|| spmd_rbcast ../engine/source/mpi/generic/spmd_rbcast.F
509!||====================================================================
510 INTEGER FUNCTION get_u_nod_a(NOD, AX,AY,AZ)
511C En SPMD, tous les procs doivent appeler cette fonction
512C sinon blocage
513C-----------------------------------------------
514C I m p l i c i t T y p e s
515C-----------------------------------------------
516#include "implicit_f.inc"
517C-----------------------------------------------
518C C o m m o n B l o c k s
519C-----------------------------------------------
520#include "com01_c.inc"
521#include "scr05_c.inc"
522#include "userlib.inc"
523C-----------------------------------------------
524C D u m m y A r g u m e n t s
525C-----------------------------------------------
526 INTEGER nod
527 my_real ax,ay,az
528C-----------------------------------------------
529C L o c a l V a r i a b l e s
530C-----------------------------------------------
531 INTEGER l,d1,d2,d3, p
532 my_real bufs(6)
533C-----------------------------------------------
534C S o u r c e L i n e s
535C-----------------------------------------------
536 IF (nod>0) THEN
537 IF(nspmd>1) THEN
538C get_proc_user_f retourne 1 si weight(nod) = 1, , 0 sinon
539C weight : pointeur 18 (cf resol.F)
540 CALL get_var_user_i(18,nod,p)
541 ELSE
542 p = 1
543 ENDIF
544 IF(p==1) THEN
545 l=(nod-1)*3
546 d1=l+1
547 d2=l+2
548 d3=l+3
549 IF (iresp == 1) THEN
550 CALL get_var_user_f_sp(17,d1,ax)
551 CALL get_var_user_f_sp(17,d2,ay)
552 CALL get_var_user_f_sp(17,d3,az)
553 ELSE
554 CALL get_var_user_f(17,d1,ax)
555 CALL get_var_user_f(17,d2,ay)
556 CALL get_var_user_f(17,d3,az)
557 ENDIF
558 ENDIF
559C
560C SPMD communication du resultat a ts les procs
561C
562 IF(nspmd>1.AND.getunod_nocom==0) THEN
563 IF(p==1) THEN
564 bufs(1) = ax
565 bufs(2) = ay
566 bufs(3) = az
567 ELSE
568 bufs(1) = zero
569 bufs(2) = zero
570 bufs(3) = zero
571 ENDIF
572 CALL spmd_glob_dsum(bufs,3,bufs(4))
573 CALL spmd_rbcast(bufs,bufs,3,1,0,2)
574 ax = bufs(1)
575 ay = bufs(2)
576 az = bufs(3)
577 ENDIF
578C
579C Fin SPMD
580C
581 get_u_nod_a= 0
582 RETURN
583 ENDIF
584 get_u_nod_a= -1
585 ax = zero
586 ay = zero
587 az = zero
588C
589 RETURN
590 END
591
592!||====================================================================
593!|| get_u_skew ../engine/source/user_interface/uaccess.F
594!||--- called by ------------------------------------------------------
595!|| rskew33 ../engine/source/elements/joint/rskew33.F
596!||--- calls -----------------------------------------------------
597!|| get_array_user_f ../engine/source/user_interface/eng_callback_c.c
598!|| get_array_user_f_sp ../engine/source/user_interface/eng_callback_c.c
599!|| get_var_user_i ../engine/source/user_interface/eng_callback_c.c
600!||====================================================================
601 INTEGER FUNCTION get_u_skew(IDSKW,N1,N2,N3,VECT)
602C-----------------------------------------------
603C I m p l i c i t T y p e s
604C-----------------------------------------------
605#include "implicit_f.inc"
606C-----------------------------------------------
607C C o m m o n B l o c k s
608C-----------------------------------------------
609#include "com04_c.inc"
610#include "scr05_c.inc"
611#include "r4r8_p.inc"
612#include "param_c.inc"
613C-----------------------------------------------
614C D u m m y A r g u m e n t s
615C-----------------------------------------------
616 my_real,INTENT(IN) :: vect(lskew)
617 INTEGER,INTENT(IN) :: idskw,n1,n2,n3
618C-----------------------------------------------
619C L o c a l V a r i a b l e s
620C-----------------------------------------------
621 INTEGER i,id,depla
622C-----------------------------------------------
623C S o u r c e L i n e s
624C-----------------------------------------------
625C
626 get_u_skew = 0
627C
628 DO i=1,numskw
629 depla = 4+i*liskn
630 CALL get_var_user_i(9,depla,id)
631C
632 IF(id==idskw) THEN
633 get_u_skew = i
634C
635 CALL get_var_user_i(9,i+1 ,n1)
636 CALL get_var_user_i(9,i+2*2,n2)
637 CALL get_var_user_i(9,i+3*3,n3)
638C
639 depla = i*lskew+1
640 IF (iresp==1) THEN
641 CALL get_array_user_f_sp (10,depla,vect,lskew)
642 ELSE
643 CALL get_array_user_f (10,depla,vect,lskew)
644 ENDIF
645 RETURN
646C
647 ENDIF
648C
649 ENDDO
650 RETURN
651 END
653 . FUNCTION get_u_uvar(IEL,ILAYER,IVAR,NUVAR)
654C---------+---------+---+---+--------------------------------------------
655C This routine is called by SIGEPS29, SIGEPS30, SIGEPS31 ...
656C Gives access to user variables for all layers of the element
657C---------+---------+---+---+--------------------------------------------
658C
659C VAR | SIZE |TYP| | DEFINITION
660C---------+---------+---+---+--------------------------------------------
661C IEL | 1 | I | | ELEMENT NUMBER
662C ILAYER | 1 | I | | LAYER NUMBER
663C IVAR | 1 | I | | USER VARIABLE NUMBER
664C NUVAR | 1 | I | | NUMBER OF USER VARIABLES
665C---------+---------+---+---+--------------------------------------------
666C I m p l i c i t T y p e s
667C-----------------------------------------------
668#include "implicit_f.inc"
669C-----------------------------------------------
670C G l o b a l P a r a m e t e r s
671C-----------------------------------------------
672#include "mvsiz_p.inc"
673C-----------------------------------------------
674C C o m m o n B l o c k s
675C-----------------------------------------------
676#include "usrplas_c.inc"
677#include "units_c.inc"
678C-----------------------------------------------
679C D u m m y A r g u m e n t s
680C-----------------------------------------------
681 INTEGER iel,ilayer,ivar,nuvar
682C-----------------------------------------------
683C L o c a l V a r i a b l e s
684C-----------------------------------------------
685 INTEGER n
686C-----------------------------------------------
687C S o u r c e L i n e s
688C-----------------------------------------------
689 n = (ilayer-1)*nuvar+ivar
690 IF (n > 5000) THEN
691 n = 5000
692 WRITE(iout,*) 'USER VARIABLE ACCESS ERROR : BUFFER OVERFLOW'
693 ENDIF
694 get_u_uvar = uuvar(iel,n)
695C
696 RETURN
697 END
698!||====================================================================
699!|| set_spring_elnum ../engine/source/user_interface/uaccess.F
700!||--- called by ------------------------------------------------------
701!|| rforc3 ../engine/source/elements/spring/rforc3.F
702!||====================================================================
703 SUBROUTINE set_spring_elnum(JFT,JLT,IXR)
704C---------+---------+---+---+--------------------------------------------
705C Saves external spring number for local element group
706C---------+---------+---+---+--------------------------------------------
707C I m p l i c i t T y p e s
708C-----------------------------------------------
709#include "implicit_f.inc"
710C-----------------------------------------------
711C G l o b a l P a r a m e t e r s
712C-----------------------------------------------
713#include "mvsiz_p.inc"
714C-----------------------------------------------
715C C o m m o n B l o c k s
716C-----------------------------------------------
717#include "vec_spring_num.inc"
718C-----------------------------------------------
719C D u m m y A r g u m e n t s
720C-----------------------------------------------
721 INTEGER JFT,JLT
722 INTEGER IXR(NIXR,*)
723C-----------------------------------------------
724C L o c a l V a r i a b l e s
725C-----------------------------------------------
726 INTEGER I,ID
727C-----------------------------------------------
728C S o u r c e L i n e s
729C-----------------------------------------------
730 DO i=jft,jlt
731 spr_num(i) = ixr(nixr,i)
732 ENDDO
733 RETURN
734 END
735 integer
736 . FUNCTION get_spring_elnum(IEL)
737C---------+---------+---+---+--------------------------------------------
738C This routine is called by SIGEPS29, SIGEPS30, SIGEPS31 ...
739C Gives external element number
740C---------+---------+---+---+--------------------------------------------
741C I m p l i c i t T y p e s
742C-----------------------------------------------
743#include "implicit_f.inc"
744C-----------------------------------------------
745C G l o b a l P a r a m e t e r s
746C-----------------------------------------------
747#include "mvsiz_p.inc"
748C-----------------------------------------------
749C C o m m o n B l o c k s
750C-----------------------------------------------
751#include "vec_spring_num.inc"
752C-----------------------------------------------
753C D u m m y A r g u m e n t s
754C-----------------------------------------------
755 INTEGER iel,num
756C-----------------------------------------------
757C S o u r c e L i n e s
758C-----------------------------------------------
759 num = nint(spr_num(iel))
760 get_spring_elnum = num
761 RETURN
762 END
763!||====================================================================
764!|| mat_solid_get_nod_x ../engine/source/user_interface/uaccess.F
765!||--- uses -----------------------------------------------------
766!|| restmod ../engine/share/modules/restart_mod.F
767!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
768!||====================================================================
769 SUBROUTINE mat_solid_get_nod_x(USER_X)
770C---------+---------+---+---+--------------------------------------------
771 USE restmod
772 USE user_interface_mod
773C-----------------------------------------------
774C I m p l i c i t T y p e s
775C-----------------------------------------------
776#include "implicit_f.inc"
777C-----------------------------------------------
778C C o m m o n B l o c k s
779C-----------------------------------------------
780#include "vect01_c.inc"
781C-----------------------------------------------
782C D u m m y A r g u m e n t s
783C-----------------------------------------------
784 my_real user_x(llt,8,3)
785C-----------------------------------------------
786C L o c a l V a r i a b l e s
787C-----------------------------------------------
788 INTEGER ND1,ND2,ND3,ND4,ND5,ND6,ND7,ND8,ELEM,I
789C-----------------------------------------------
790C S o u r c e L i n e s
791C-----------------------------------------------
792 DO i=1,llt
793 elem=nft+i
794 nd1=ixs(nixs*(elem-1)+2)
795 nd2=ixs(nixs*(elem-1)+3)
796 nd3=ixs(nixs*(elem-1)+4)
797 nd4=ixs(nixs*(elem-1)+5)
798 nd5=ixs(nixs*(elem-1)+6)
799 nd6=ixs(nixs*(elem-1)+7)
800 nd7=ixs(nixs*(elem-1)+8)
801 nd8=ixs(nixs*(elem-1)+9)
802C
803 IF(nd1 > 0)THEN
804 user_x(i,1,1)=user_interface_nodes%X(1,nd1)
805 user_x(i,1,2)=user_interface_nodes%X(2,nd1)
806 user_x(i,1,3)=user_interface_nodes%X(3,nd1)
807 ELSE
808 user_x(i,1,1)=zero
809 user_x(i,1,2)=zero
810 user_x(i,1,3)=zero
811 ENDIF
812C
813 IF(nd2 > 0)THEN
814 user_x(i,2,1)=user_interface_nodes%X(1,nd2)
815 user_x(i,2,2)=user_interface_nodes%X(2,nd2)
816 user_x(i,2,3)=user_interface_nodes%X(3,nd2)
817 ELSE
818 user_x(i,2,1)=zero
819 user_x(i,2,2)=zero
820 user_x(i,2,3)=zero
821 ENDIF
822C
823 IF(nd3 > 0)THEN
824 user_x(i,3,1)=user_interface_nodes%X(1,nd3)
825 user_x(i,3,2)=user_interface_nodes%X(2,nd3)
826 user_x(i,3,3)=user_interface_nodes%X(3,nd3)
827 ELSE
828 user_x(i,3,1)=zero
829 user_x(i,3,2)=zero
830 user_x(i,3,3)=zero
831 ENDIF
832C
833 IF(nd4 > 0)THEN
834 user_x(i,4,1)=user_interface_nodes%X(1,nd4)
835 user_x(i,4,2)=user_interface_nodes%X(2,nd4)
836 user_x(i,4,3)=user_interface_nodes%X(3,nd4)
837 ELSE
838 user_x(i,4,1)=zero
839 user_x(i,4,2)=zero
840 user_x(i,4,3)=zero
841 ENDIF
842C
843 IF(nd5 > 0)THEN
844 user_x(i,5,1)=user_interface_nodes%X(1,nd5)
845 user_x(i,5,2)=user_interface_nodes%X(2,nd5)
846 user_x(i,5,3)=user_interface_nodes%X(3,nd5)
847 ELSE
848 user_x(i,5,1)=zero
849 user_x(i,5,2)=zero
850 user_x(i,5,3)=zero
851 ENDIF
852C
853 IF(nd6 > 0)THEN
854 user_x(i,6,1)=user_interface_nodes%X(1,nd6)
855 user_x(i,6,2)=user_interface_nodes%X(2,nd6)
856 user_x(i,6,3)=user_interface_nodes%X(3,nd6)
857 ELSE
858 user_x(i,6,1)=zero
859 user_x(i,6,2)=zero
860 user_x(i,6,3)=zero
861 ENDIF
862C
863 IF(nd7 > 0)THEN
864 user_x(i,7,1)=user_interface_nodes%X(1,nd7)
865 user_x(i,7,2)=user_interface_nodes%X(2,nd7)
866 user_x(i,7,3)=user_interface_nodes%X(3,nd7)
867 ELSE
868 user_x(i,7,1)=zero
869 user_x(i,7,2)=zero
870 user_x(i,7,3)=zero
871 ENDIF
872C
873 IF(nd8 > 0)THEN
874 user_x(i,8,1)=user_interface_nodes%X(1,nd8)
875 user_x(i,8,2)=user_interface_nodes%X(2,nd8)
876 user_x(i,8,3)=user_interface_nodes%X(3,nd8)
877 ELSE
878 user_x(i,8,1)=zero
879 user_x(i,8,2)=zero
880 user_x(i,8,3)=zero
881 ENDIF
882
883 ENDDO
884C
885
886 END
887C-----------------------------------------------
888!||====================================================================
889!|| mat_solid_get_nod_v ../engine/source/user_interface/uaccess.F
890!||--- uses -----------------------------------------------------
891!|| restmod ../engine/share/modules/restart_mod.F
892!|| user_interface_mod ../engine/source/modules/user_interface_mod.F90
893!||====================================================================
894 SUBROUTINE mat_solid_get_nod_v(USER_V)
895C---------+---------+---+---+--------------------------------------------
896 USE restmod
897 USE user_interface_mod
898C-----------------------------------------------
899C I m p l i c i t T y p e s
900C-----------------------------------------------
901#include "implicit_f.inc"
902C-----------------------------------------------
903C C o m m o n B l o c k s
904C-----------------------------------------------
905#include "vect01_c.inc"
906C-----------------------------------------------
907C D u m m y A r g u m e n t s
908C-----------------------------------------------
909 my_real user_v(llt,8,3)
910C-----------------------------------------------
911C L o c a l V a r i a b l e s
912C-----------------------------------------------
913 INTEGER ND1,ND2,ND3,ND4,ND5,ND6,ND7,ND8,ELEM,I
914C-----------------------------------------------
915C S o u r c e L i n e s
916C-----------------------------------------------
917 DO i=1,llt
918 elem=nft+i
919 nd1=ixs(nixs*(elem-1)+2)
920 nd2=ixs(nixs*(elem-1)+3)
921 nd3=ixs(nixs*(elem-1)+4)
922 nd4=ixs(nixs*(elem-1)+5)
923 nd5=ixs(nixs*(elem-1)+6)
924 nd6=ixs(nixs*(elem-1)+7)
925 nd7=ixs(nixs*(elem-1)+8)
926 nd8=ixs(nixs*(elem-1)+9)
927C
928 IF(nd1 > 0)THEN
929 user_v(i,1,1)=user_interface_nodes%V(1,nd1)
930 user_v(i,1,2)=user_interface_nodes%V(2,nd1)
931 user_v(i,1,3)=user_interface_nodes%V(3,nd1)
932 ELSE
933 user_v(i,1,1)=zero
934 user_v(i,1,2)=zero
935 user_v(i,1,3)=zero
936 ENDIF
937C
938 IF(nd2 > 0)THEN
939 user_v(i,2,1)=user_interface_nodes%V(1,nd2)
940 user_v(i,2,2)=user_interface_nodes%V(2,nd2)
941 user_v(i,2,3)=user_interface_nodes%V(3,nd2)
942 ELSE
943 user_v(i,2,1)=zero
944 user_v(i,2,2)=zero
945 user_v(i,2,3)=zero
946 ENDIF
947C
948 IF(nd3 > 0)THEN
949 user_v(i,3,1)=user_interface_nodes%V(1,nd3)
950 user_v(i,3,2)=user_interface_nodes%V(2,nd3)
951 user_v(i,3,3)=user_interface_nodes%V(3,nd3)
952 ELSE
953 user_v(i,3,1)=zero
954 user_v(i,3,2)=zero
955 user_v(i,3,3)=zero
956 ENDIF
957C
958 IF(nd4 > 0)THEN
959 user_v(i,4,1)=user_interface_nodes%V(1,nd4)
960 user_v(i,4,2)=user_interface_nodes%V(2,nd4)
961 user_v(i,4,3)=user_interface_nodes%V(3,nd4)
962 ELSE
963 user_v(i,4,1)=zero
964 user_v(i,4,2)=zero
965 user_v(i,4,3)=zero
966 ENDIF
967C
968 IF(nd5 > 0)THEN
969 user_v(i,5,1)=user_interface_nodes%V(1,nd5)
970 user_v(i,5,2)=user_interface_nodes%V(2,nd5)
971 user_v(i,5,3)=user_interface_nodes%V(3,nd5)
972 ELSE
973 user_v(i,5,1)=zero
974 user_v(i,5,2)=zero
975 user_v(i,5,3)=zero
976 ENDIF
977C
978 IF(nd6 > 0)THEN
979 user_v(i,6,1)=user_interface_nodes%V(1,nd6)
980 user_v(i,6,2)=user_interface_nodes%V(2,nd6)
981 user_v(i,6,3)=user_interface_nodes%V(3,nd6)
982 ELSE
983 user_v(i,6,1)=zero
984 user_v(i,6,2)=zero
985 user_v(i,6,3)=zero
986 ENDIF
987C
988 IF(nd7 > 0)THEN
989 user_v(i,7,1)=user_interface_nodes%V(1,nd7)
990 user_v(i,7,2)=user_interface_nodes%V(2,nd7)
991 user_v(i,7,3)=user_interface_nodes%V(3,nd7)
992 ELSE
993 user_v(i,7,1)=zero
994 user_v(i,7,2)=zero
995 user_v(i,7,3)=zero
996 ENDIF
997C
998 IF(nd8 > 0)THEN
999 user_v(i,8,1)=user_interface_nodes%V(1,nd8)
1000 user_v(i,8,2)=user_interface_nodes%V(2,nd8)
1001 user_v(i,8,3)=user_interface_nodes%V(3,nd8)
1002 ELSE
1003 user_v(i,8,1)=zero
1004 user_v(i,8,2)=zero
1005 user_v(i,8,3)=zero
1006 ENDIF
1007
1008 ENDDO
1009
1010 END
1011C-----------------------------------------------
#define my_real
Definition cppsort.cpp:32
subroutine depla(v, d, x, vr, dr, xdp, ddp, numnod)
Definition depla.F:29
void get_var_user_f(int *buf, int *decalage, double *resultat)
void get_array_user_f(int *buf, int *decalage, double *array, int *array_lenght)
void get_array_user_f_sp(int *buf, int *decalage, float *array, int *array_lenght)
void get_var_user_i(int *buf, int *decalage, int *resultat)
void get_var_user_f_sp(int *buf, int *decalage, float *resultat)
subroutine set_spring_elnum(jft, jlt, ixr)
Definition uaccess.F:704
integer function get_u_nod_v(nod, vx, vy, vz)
Definition uaccess.F:419
integer function get_u_accel(nacc, ax, ay, az)
Definition uaccess.F:78
integer function get_u_cycle()
Definition uaccess.F:40
integer function get_u_nod_x(nod, x, y, z)
Definition uaccess.F:239
integer function get_u_numnod(iu)
Definition uaccess.F:170
integer function get_u_nod_a(nod, ax, ay, az)
Definition uaccess.F:511
integer function get_u_numacc(idacc)
Definition uaccess.F:126
integer function get_spring_elnum(iel)
Definition uaccess.F:737
integer function get_u_skew(idskw, n1, n2, n3, vect)
Definition uaccess.F:602
subroutine mat_solid_get_nod_v(user_v)
Definition uaccess.F:895
subroutine mat_solid_get_nod_x(user_x)
Definition uaccess.F:770
subroutine uaccess_dum(ierr)
Definition uaccess.F:29
integer function get_u_nod_d(nod, dx, dy, dz)
Definition uaccess.F:329
initmumps id
integer, dimension(:), allocatable, target ixs
Definition restart_mod.F:60
subroutine spmd_rbcast(tabi, tabr, n1, n2, from, add)
Definition spmd_rbcast.F:62
subroutine spmd_glob_dsum(v, len, vtmp)
Definition spmd_th.F:87
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889