OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rmatforp.F File Reference
#include "implicit_f.inc"
#include "comlock.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "timeri_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine rmatforp (timers, a, ar, x, vr, in, stifn, stifr, irby, lnrby, rby, icodrby, weight, ms, v, fr_rbm, iad_rby, arby, vrby, arrby, vrrby, kind, rbym6)

Function/Subroutine Documentation

◆ rmatforp()

subroutine rmatforp ( type(timer_), intent(inout) timers,
a,
ar,
x,
vr,
in,
stifn,
stifr,
integer, dimension(nirbym,*) irby,
integer, dimension(*) lnrby,
rby,
integer, dimension(2,*) icodrby,
integer, dimension(*) weight,
ms,
v,
integer, dimension(*) fr_rbm,
integer, dimension(*) iad_rby,
arby,
vrby,
arrby,
vrrby,
integer, dimension(nrbym) kind,
double precision, dimension(6,6,nrbym) rbym6 )

Definition at line 35 of file rmatforp.F.

41 USE timer_mod
42C----6---------------------------------------------------------------7---------8
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46#include "comlock.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "com01_c.inc"
51#include "com04_c.inc"
52#include "timeri_c.inc"
53C-----------------------------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56 TYPE(TIMER_), INTENT(INOUT) :: TIMERS
57 INTEGER FR_RBM(*),IAD_RBY(*),
58 . ICODRBY(2,*),WEIGHT(*),LNRBY(*),IRBY(NIRBYM,*),
59 . KIND(NRBYM)
60C REAL
61 my_real
62 . RBY(NFRBYM,*) ,A(3,*) ,AR(3,*) ,X(3,*) ,VR(3,*),
63 . IN(*) ,STIFN(*),STIFR(*),MS(*),V(3,*) ,
64 . VRRBY(3,*),ARBY(3,*),ARRBY(3,*),
65 . VRBY(3,*)
66 DOUBLE PRECISION RBYM6(6,6,NRBYM)
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER K,M
71
72C-------------------------------------
73C Traitement rigid material
74C-------------------------------------
75
76!$OMP SINGLE
77
78 K=1
79 DO M=1,NRBYM
80 KIND(M) = K
81 K = K + IRBY(2,M)
82 ENDDO
83
84!$OMP END SINGLE
85
86!$OMP DO SCHEDULE(DYNAMIC,1)
87 DO M=1,NRBYM
88 K = KIND(M)
89 CALL RMATPON(
90 1 A ,AR ,X ,RBY(1,M),LNRBY(K) ,
91 2 IRBY(1,M) ,STIFN ,STIFR ,WEIGHT ,IRBY(2,M),
92 3 RBYM6(1,1,M),ICODRBY ,ARBY ,VRBY ,ARRBY ,
93 3 VRRBY ,1 )
94 ENDDO
95!$OMP END DO
96
97 IF (NSPMD > 1) THEN
98!$OMP SINGLE
99 IF (IMON>0) CALL STARTIME(TIMERS,11)
100C
101C Comm non multi-thread
102C
103 CALL SPMD_EXCH_A_RM6(
104 1 IAD_RBY,FR_RBM,IAD_RBY(NSPMD+1),RBYM6 )
105 IF (IMON>0) CALL STOPTIME(TIMERS,11)
106!$OMP END SINGLE
107
108 END IF
109C
110C Traitement fin parith/on multi-thread
111C
112
113!$OMP DO SCHEDULE(DYNAMIC,1)
114 DO M=1,NRBYM
115 K = KIND(M)
116 CALL RMATPON(
117 1 A ,AR ,X ,RBY(1,M),LNRBY(K) ,
118 2 IRBY(1,M) ,STIFN ,STIFR ,WEIGHT ,IRBY(2,M),
119 4 RBYM6(1,1,M),ICODRBY ,ARBY ,VRBY ,ARRBY ,
120 3 VRRBY ,2 )
121 ENDDO
122!$OMP END DO
123C
124 RETURN