OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
rmatforp.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!|| rmatforp ../engine/source/materials/mat/mat013/rmatforp.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- calls -----------------------------------------------------
28!|| rmatpon ../engine/source/materials/mat/mat013/rmatpon.F
29!|| spmd_exch_a_rm6 ../engine/source/mpi/kinematic_conditions/spmd_exch_a_rm6.F
30!|| startime ../engine/source/system/timer_mod.F90
31!|| stoptime ../engine/source/system/timer_mod.F90
32!||--- uses -----------------------------------------------------
33!|| timer_mod ../engine/source/system/timer_mod.F90
34!||====================================================================
35 SUBROUTINE rmatforp(TIMERS,
36 1 A ,AR ,X ,VR ,IN ,
37 2 STIFN ,STIFR ,IRBY ,LNRBY ,RBY ,
38 3 ICODRBY ,WEIGHT ,MS ,V ,FR_RBM ,
39 4 IAD_RBY ,ARBY ,VRBY ,ARRBY ,VRRBY ,
40 5 KIND ,RBYM6 )
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
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
125 END
#define my_real
Definition cppsort.cpp:32
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)
Definition rmatforp.F:41
subroutine rmatpon(af, am, x, rby, nod, nby, stifn, stifr, weight, nsl, rbf6, icod, arby, vrby, arrby, vrrby, iflag)
Definition rmatpon.F:35
subroutine spmd_exch_a_rm6(iad_rby, fr_rby6, icsize, rbf6)
subroutine startime(event, itask)
Definition timer.F:93
subroutine stoptime(event, itask)
Definition timer.F:135