OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
w_rwar.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine w_rwar (nprw, lprw, rwl, rwsav, lwsav_l, cep, proc, len_am)

Function/Subroutine Documentation

◆ w_rwar()

subroutine w_rwar ( integer, dimension(*) nprw,
integer, dimension(*) lprw,
rwl,
rwsav,
integer lwsav_l,
integer, dimension(*) cep,
integer proc,
integer len_am )

Definition at line 31 of file w_rwar.F.

33C-----------------------------------------------
34C M o d u l e s
35C-----------------------------------------------
36
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "com04_c.inc"
45#include "param_c.inc"
46C-----------------------------------------------
47C D u m m y A r g u m e n t s
48C-----------------------------------------------
49 INTEGER PROC, LEN_AM, LWSAV_L, LPRW(*), NPRW(*),
50 . CEP(*)
52 . rwl(nrwlp,*), rwsav(*)
53C-----------------------------------------------
54C F u n c t i o n
55C-----------------------------------------------
56 INTEGER NLOCAL
57 EXTERNAL nlocal
58C-----------------------------------------------
59C L o c a l V a r i a b l e s
60C-----------------------------------------------
61 INTEGER I, J, K, KK, N, NN, IE, NE, ITY, IFQ, N4,
62 . ILP, NSL, NSL_L, KSAV, KSAV_L
63 my_real , DIMENSION(:),ALLOCATABLE :: rwsav_l
64 my_real , DIMENSION(:,:),ALLOCATABLE :: rwl_l
65C
66 IF(nrwall>0) THEN
67 ALLOCATE(rwl_l(nrwlp,nrwall))
68 IF(lwsav_l>0) ALLOCATE(rwsav_l(3*lwsav_l))
69 k = 0
70 ksav = 0
71 ksav_l = 0
72 DO n = 1, nrwall
73 DO j = 1, nrwlp
74 rwl_l(j,n) = rwl(j,n)
75 ENDDO
76C
77 nsl = nprw(n)
78C
79 ifq = nint(rwl(15,n))
80 IF(ifq>0) THEN
81 nsl_l = 0
82 DO kk = 1, nsl
83 nn = lprw(k+kk)
84 IF(nlocal(nn,proc+1)==1)THEN
85 rwsav_l(ksav_l+3*nsl_l+1) = rwsav(ksav+3*(kk-1)+1)
86 rwsav_l(ksav_l+3*nsl_l+2) = rwsav(ksav+3*(kk-1)+2)
87 rwsav_l(ksav_l+3*nsl_l+3) = rwsav(ksav+3*(kk-1)+3)
88 nsl_l = nsl_l + 1
89 ENDIF
90 ENDDO
91 ksav = ksav + 3*nsl
92 ksav_l = ksav_l + 3*nsl_l
93 ENDIF
94C
95 k = k + nsl
96C
97 n4 = n + 3*nrwall
98 IF(nprw(n4)==-1) THEN
99C RW ALE TH
100 ne = nint(rwl(8,n))
101 IF(ne>0)THEN
102 ilp = 0
103 DO j = 1, ne
104 ie = lprw(k+j)/10
105 IF(cep(ie)==proc) THEN
106 ilp = ilp + 1
107 ENDIF
108 ENDDO
109 rwl_l(8,n) = ilp
110 k = k + ne
111 ENDIF
112 ENDIF
113 ENDDO
114C
115 CALL write_db(rwl_l,nrwlp*nrwall)
116 len_am = len_am + nrwlp*nrwall
117 DEALLOCATE(rwl_l)
118 IF(lwsav_l>0) THEN
119 CALL write_db(rwsav_l,lwsav_l*3)
120 len_am = len_am + lwsav_l*3
121 DEALLOCATE(rwsav_l)
122 ENDIF
123 ENDIF
124C
125 RETURN
#define my_real
Definition cppsort.cpp:32
integer function nlocal(n, p)
Definition ddtools.F:349
subroutine write_db(a, n)
Definition write_db.F:140