OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
w_elmx.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/.
23C
24!||====================================================================
25!|| w_elmx ../starter/source/restart/ddsplit/w_elmx.F
26!||--- called by ------------------------------------------------------
27!|| ddsplit ../starter/source/restart/ddsplit/ddsplit.F
28!||--- calls -----------------------------------------------------
29!||====================================================================
30 SUBROUTINE w_elmx(KXX,NUMELX_L,ISUMNX_L,IXX,CEP,
31 + PROC,NODLOCAL,LEN_IA)
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
93 END
subroutine w_elmx(kxx, numelx_l, isumnx_l, ixx, cep, proc, nodlocal, len_ia)
Definition w_elmx.F:32
void write_i_c(int *w, int *len)