OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r2r_check.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!|| r2r_check ../starter/source/coupling/rad2rad/r2r_check.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| grfind ../starter/source/starter/freform.F
30!||--- uses -----------------------------------------------------
31!|| message_mod ../starter/share/message_module/message_mod.F
32!|| r2r_mod ../starter/share/modules1/r2r_mod.F
33!|| restmod ../starter/share/modules1/restart_mod.F
34!||====================================================================
35 SUBROUTINE r2r_check(IEXTER ,IGRNOD ,IPARTL)
36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE groupdef_mod
40 USE message_mod
41C-----------------------------------------------
42C M o d u l e s
43C-----------------------------------------------
44 USE restmod
45 USE r2r_mod
46C-----------------------------------------------
47C I m p l i c i t T y p e s
48C-----------------------------------------------
49#include "implicit_f.inc"
50C-----------------------------------------------
51C C o m m o n B l o c k s
52C-----------------------------------------------
53#include "com04_c.inc"
54#include "scr17_c.inc"
55#include "param_c.inc"
56#include "r2r_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 INTEGER IEXTER(NR2R,*),IPARTL(LIPART1,*)
61C-----------------------------------------------
62C L o c a l V a r i a b l e s
63C-----------------------------------------------
64 INTEGER STAT,I,IGR,IGRS,N,K,ADD
65 CHARACTER MESS*40
66 INTEGER, DIMENSION(:), ALLOCATABLE :: TAGPART
67C-----------------------------------------------
68 TYPE (GROUP_) ,DIMENSION(NGRNOD) :: IGRNOD
69C-----------------------------------------------
70C E x t e r n a l F u n c t i o n s
71C-----------------------------------------------
72 INTEGER GRFIND
73C
74 DATA mess/' ** ERROR EXTERNAL COUPLING DEFINITION '/
75
76C----- Check if Id of subdomains-----------------------------------C
77
78 IF (nsubdom>0) THEN
79 DO n=1,nsubdom-1
80 igr = isubdom(2,n)
81 DO i=n+1,nsubdom
82 IF (igr==isubdom(2,i)) THEN
83 CALL ancmsg(msgid=792,
84 . msgtype=msgerror,
85 . anmode=aninfo,
86 . i1=igr)
87 ierr=ierr+1
88 ENDIF
89 END DO
90 END DO
91 ENDIF
92
93C----- Check of parts of subdomains-------------------------------C
94
95 ALLOCATE(tagpart(npart))
96 tagpart = 0
97
98 DO n=1,nsubdom
99 add = isubdom(3,n)
100 DO k=1,npart
101 DO i=1,isubdom(1,n)
102 IF(k == isubdom_part(i+add))THEN
103 tagpart(k)=tagpart(k)+1
104 IF (tagpart(k)>1) THEN
105 CALL ancmsg(msgid=827,
106 . msgtype=msgerror,
107 . anmode=aninfo,i1=isubdom(1,n),
108 . i2=ipart(lipart1*(k-1)+4))
109 ierr=ierr+1
110 ENDIF
111 ENDIF
112 ENDDO
113 END DO
114 END DO
115
116C----- Check of common nodes between interfaces---------------------C
117
118! DO N=1,NR2RLNK-1
119! DO I=N+1,NR2RLNK
120C CALL ANSTCKI(22)
121C CALL ANSTCKI(9)
122C CALL ANSTCKI(8)
123C CALL ANCERR(792,ANINFO)
124C IERR=IERR+1
125! END DO
126! END DO
127
128C----- Check of multidomains node groups-----------------------------C
129
130 DO n=1,nr2rlnk
131 igr = iexter(1,n)
132 igrs = grfind(igr,igrnod,mess)
133 iexter(1,n) = igrs
134 IF (igrs==0) ierr=ierr+1
135 END DO
136
137C--------------------------------------------------------------------C
138
139 RETURN
140 END SUBROUTINE r2r_check
integer, dimension(:), allocatable isubdom_part
Definition r2r_mod.F:131
integer, dimension(:,:), allocatable isubdom
Definition r2r_mod.F:144
integer, dimension(:), allocatable, target ipart
Definition restart_mod.F:60
subroutine r2r_check(iexter, igrnod, ipartl)
Definition r2r_check.F:36
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:889