OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
write_th_buffer.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!|| write_th_buffer ../starter/source/restart/ddsplit/write_th_buffer.F
26!||--- called by ------------------------------------------------------
27!|| ddsplit ../starter/source/restart/ddsplit/ddsplit.F
28!||--- calls -----------------------------------------------------
29!|| w_th ../starter/source/restart/ddsplit/w_th.F
30!||--- uses -----------------------------------------------------
31!||====================================================================
32 SUBROUTINE write_th_buffer(TH ,NODLOCAL ,CEL ,P,
33 2 NTHGRP0 ,NTHGRP ,NTHGRP01 ,NTHGRP1 ,
34 3 SCEL ,NUMSPH ,NUMNOD ,NCLUSTER ,
35 4 CELSPH ,NUMLOCCLUSTER ,NBR_TH_MONVOL)
36 ! -----------------------------------------------
37 ! ROUTINE DESCRIPTION :
38 ! ========================
39 ! Split and write Time History buffer
40C-----------------------------------------------
41C M o d u l e s
42C-----------------------------------------------
44C-----------------------------------------------
45C I m p l i c i t T y p e s
46C-----------------------------------------------
47#include "implicit_f.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51 TYPE(th_),INTENT(INOUT) :: TH ! TH Type
52 INTEGER,INTENT(IN) :: P ! Current SPMD domain
53 INTEGER,INTENT(IN) :: NUMNOD ! Total number of Model Nodes
54 INTEGER,INTENT(IN) :: NUMSPH ! Total number of SPH partikles in model
55 INTEGER,INTENT(IN) :: SCEL ! Size of CEL
56 INTEGER,INTENT(IN) :: NCLUSTER ! Total number of SPH partikles in model
57 INTEGER,INTENT(IN) :: NBR_TH_MONVOL ! number of /TH/MONV
58 INTEGER,DIMENSION(NUMNOD), INTENT(IN) :: NODLOCAL ! Conversion Starter to Engine node table
59 INTEGER,INTENT(IN) :: NTHGRP0,NTHGRP ! Number of variables for main Time History
60 INTEGER,DIMENSION(9),INTENT(IN) :: NTHGRP01,NTHGRP1 ! Number of variables for secondaty TH: ath-ith
61 INTEGER,DIMENSION(SCEL),INTENT(IN) :: CEL ! Assign Finite Elmeent to SPMD domain
62 INTEGER,DIMENSION(NUMSPH),INTENT(IN) :: CELSPH ! Assign SPH partikle to SPMD domain
63 INTEGER,DIMENSION(NCLUSTER),INTENT(IN) :: NUMLOCCLUSTER ! Assign SPH partikle to SPMD domain
64C-----------------------------------------------
65
66 CALL write_i_c(th%NITHGR,1)
67 CALL write_i_c(th%SITHGRP, 1)
68 CALL write_i_c(th%SITHBUF, 1)
69
70 CALL write_i_c(th%SITHGRPA,1)
71 CALL write_i_c(th%SITHBUFA,1)
72
73 CALL write_i_c(th%SITHGRPB,1)
74 CALL write_i_c(th%SITHBUFB,1)
75
76 CALL write_i_c(th%SITHGRPC,1)
77 CALL write_i_c(th%SITHBUFC,1)
78
79 CALL write_i_c(th%SITHGRPD,1)
80 CALL write_i_c(th%SITHBUFD,1)
81
82 CALL write_i_c(th%SITHGRPE,1)
83 CALL write_i_c(th%SITHBUFE,1)
84
85 CALL write_i_c(th%SITHGRPF,1)
86 CALL write_i_c(th%SITHBUFF,1)
87
88 CALL write_i_c(th%SITHGRPG,1)
89 CALL write_i_c(th%SITHBUFG,1)
90
91 CALL write_i_c(th%SITHGRPH,1)
92 CALL write_i_c(th%SITHBUFH,1)
93
94 CALL write_i_c(th%SITHGRPI,1)
95 CALL write_i_c(th%SITHBUFI,1)
96
97
98 CALL w_th(th%ITHGRP ,th%ITHBUF ,th%SITHBUF,nodlocal,cel ,
99 2 nthgrp0 ,nthgrp ,p ,
100 3 celsph ,numloccluster ,nbr_th_monvol)
101
102
103 IF (nthgrp01(1) > 0) THEN
104 CALL w_th(th%ITHGRPA ,th%ITHBUFA ,th%SITHBUFA ,nodlocal,cel ,
105 2 nthgrp01(1) ,nthgrp1(1) ,p ,
106 3 celsph, numloccluster ,nbr_th_monvol)
107 END IF
108
109 IF (nthgrp01(2) > 0) THEN
110 CALL w_th(th%ITHGRPB ,th%ITHBUFB ,th%SITHBUFB,nodlocal,cel,
111 2 nthgrp01(2) ,nthgrp1(2) ,p ,
112 3 celsph ,numloccluster ,nbr_th_monvol)
113 END IF
114
115 IF (nthgrp01(3) > 0) THEN
116 CALL w_th(th%ITHGRPC ,th%ITHBUFC ,th%SITHBUFC,nodlocal,cel,
117 2 nthgrp01(3) ,nthgrp1(3) ,p ,
118 3 celsph ,numloccluster ,nbr_th_monvol)
119 END IF
120
121 IF (nthgrp01(4) > 0) THEN
122 CALL w_th(th%ITHGRPD ,th%ITHBUFD ,th%SITHBUFD,nodlocal,cel,
123 2 nthgrp01(4) ,nthgrp1(4) ,p ,
124 3 celsph ,numloccluster ,nbr_th_monvol)
125 END IF
126
127 IF (nthgrp01(5) > 0) THEN
128 CALL w_th(th%ITHGRPE ,th%ITHBUFE ,th%SITHBUFE,nodlocal,cel ,
129 2 nthgrp01(5),nthgrp1(5) ,p ,
130 3 celsph, numloccluster ,nbr_th_monvol)
131 END IF
132
133 IF (nthgrp01(6) > 0) THEN
134 CALL w_th(th%ITHGRPF ,th%ITHBUFF ,th%SITHBUFF,nodlocal,cel ,
135 2 nthgrp01(6),nthgrp1(6) ,p ,
136 3 celsph, numloccluster ,nbr_th_monvol)
137 END IF
138
139 IF (nthgrp01(7) > 0) THEN
140 CALL w_th(th%ITHGRPG ,th%ITHBUFG ,th%SITHBUFG,nodlocal,cel ,
141 2 nthgrp01(7),nthgrp1(7) ,p ,
142 3 celsph, numloccluster ,nbr_th_monvol)
143 END IF
144
145 IF (nthgrp01(8) > 0) THEN
146 CALL w_th(th%ITHGRPH ,th%ITHBUFH ,th%SITHBUFH,nodlocal,cel ,
147 2 nthgrp01(8),nthgrp1(8) ,p ,
148 3 celsph, numloccluster ,nbr_th_monvol)
149 END IF
150
151 IF (nthgrp01(9) > 0) THEN
152 CALL w_th(th%ITHGRPI ,th%ITHBUFI ,th%SITHBUFI,nodlocal,cel ,
153 2 nthgrp01(9),nthgrp1(9) ,p ,
154 3 celsph, numloccluster ,nbr_th_monvol)
155 END IF
156
157 END SUBROUTINE write_th_buffer
158
subroutine w_th(ithgrp, ithbuf, lenthg, nodlocal, cel, nthgrp0, nthgrp2, proc, celsph, numloccluster, nbr_th_monvol)
Definition w_th.F:34
void write_i_c(int *w, int *len)
subroutine write_th_buffer(th, nodlocal, cel, p, nthgrp0, nthgrp, nthgrp01, nthgrp1, scel, numsph, numnod, ncluster, celsph, numloccluster, nbr_th_monvol)