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

Go to the source code of this file.

Functions/Subroutines

subroutine w_elmx (kxx, numelx_l, isumnx_l, ixx, cep, proc, nodlocal, len_ia)

Function/Subroutine Documentation

◆ w_elmx()

subroutine w_elmx ( integer, dimension(nixx,*) kxx,
integer numelx_l,
integer isumnx_l,
integer, dimension(*) ixx,
integer, dimension(*) cep,
integer proc,
integer, dimension(*) nodlocal,
integer len_ia )

Definition at line 30 of file w_elmx.F.

32C-----------------------------------------------
33C I m p l i c i t T y p e s
34C-----------------------------------------------
35#include "implicit_f.inc"
36C-----------------------------------------------
37C C o m m o n B l o c k s
38C-----------------------------------------------
39#include "com04_c.inc"
40#include "scr23_c.inc"
41C-----------------------------------------------
42C D u m m y A r g u m e n t s
43C-----------------------------------------------
44 INTEGER NUMELX_L, PROC, ISUMNX_L,LEN_IA,
45 . KXX(NIXX,*), CEP(*), NODLOCAL(*), IXX(*)
46C-----------------------------------------------
47C L o c a l V a r i a b l e s
48C-----------------------------------------------
49 INTEGER I, NN, IAD, IAD_L, J, NB_L, NNOD, IE_L, OFF
50 INTEGER, DIMENSION(:), ALLOCATABLE :: IXX_L
51 INTEGER, DIMENSION(:,:), ALLOCATABLE :: KXX_L
52C-----------------------------------------------
53C
54! ----------------------------
55! allocate 1d array
56 ALLOCATE( ixx_l(isumnx_l) )
57! allocate 2d array
58 ALLOCATE( kxx_l(nixx,numelx_l) )
59! ----------------------------
60 off = numelc+numeltg+numels+numelq+numelt+numelp+numelr
61 ie_l = 0
62 nb_l = 0
63C
64 DO i = 1, numelx
65 IF(cep(off+i)==proc) THEN
66 nnod = kxx(3,i)
67 iad = kxx(4,i)
68C
69 ie_l = ie_l + 1
70 DO j = 1, nixx
71 kxx_l(j,ie_l) = kxx(j,i)
72 ENDDO
73 iad_l = nb_l+1
74 kxx_l(4,ie_l) = iad_l
75 nb_l = nb_l + nnod
76 DO j = 1, nnod
77 ixx_l(iad_l+j-1) = nodlocal(ixx(iad+j-1))
78 ENDDO
79 ENDIF
80 ENDDO
81C
82 CALL write_i_c(kxx_l,numelx_l*nixx)
83 CALL write_i_c(ixx_l,isumnx_l)
84 len_ia = len_ia + numelx_l*nixx + isumnx_l
85C
86! ----------------------------
87! deallocate 1d array
88 DEALLOCATE( ixx_l )
89! deallocate 2d array
90 DEALLOCATE( kxx_l )
91! ----------------------------
92 RETURN
void write_i_c(int *w, int *len)