OpenRadioss
2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
r2r_check.F
Go to the documentation of this file.
1
Copyright> OpenRadioss
2
Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3
Copyright>
4
Copyright> This program is free software: you can redistribute it and/or modify
5
Copyright> it under the terms of the GNU Affero General Public License as published by
6
Copyright> the Free Software Foundation, either version 3 of the License, or
7
Copyright> (at your option) any later version.
8
Copyright>
9
Copyright> This program is distributed in the hope that it will be useful,
10
Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11
Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
Copyright> GNU Affero General Public License for more details.
13
Copyright>
14
Copyright> You should have received a copy of the GNU Affero General Public License
15
Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16
Copyright>
17
Copyright>
18
Copyright> Commercial Alternative: Altair Radioss Software
19
Copyright>
20
Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21
Copyright> software under a commercial license. Contact Altair to discuss further if the
22
Copyright> 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)
36
C-----------------------------------------------
37
C M o d u l e s
38
C-----------------------------------------------
39
USE
groupdef_mod
40
USE
message_mod
41
C-----------------------------------------------
42
C M o d u l e s
43
C-----------------------------------------------
44
USE
restmod
45
USE
r2r_mod
46
C-----------------------------------------------
47
C I m p l i c i t T y p e s
48
C-----------------------------------------------
49
#include "implicit_f.inc"
50
C-----------------------------------------------
51
C C o m m o n B l o c k s
52
C-----------------------------------------------
53
#include "com04_c.inc"
54
#include "scr17_c.inc"
55
#include "param_c.inc"
56
#include "r2r_c.inc"
57
C-----------------------------------------------
58
C D u m m y A r g u m e n t s
59
C-----------------------------------------------
60
INTEGER
IEXTER(NR2R,*),IPARTL(
LIPART1
,*)
61
C-----------------------------------------------
62
C L o c a l V a r i a b l e s
63
C-----------------------------------------------
64
INTEGER
STAT,I,IGR,
IGRS
,N,K,ADD
65
CHARACTER
MESS*40
66
INTEGER
,
DIMENSION(:)
,
ALLOCATABLE
:: TAGPART
67
C-----------------------------------------------
68
TYPE
(GROUP_) ,
DIMENSION(NGRNOD)
:: IGRNOD
69
C-----------------------------------------------
70
C E x t e r n a l F u n c t i o n s
71
C-----------------------------------------------
72
INTEGER
GRFIND
73
C
74
DATA
mess/
' ** ERROR EXTERNAL COUPLING DEFINITION '
/
75
76
C----- 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
93
C----- 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
116
C----- Check of common nodes between interfaces---------------------C
117
118
! DO N=1,NR2RLNK-1
119
! DO I=N+1,NR2RLNK
120
C CALL ANSTCKI(22)
121
C CALL ANSTCKI(9)
122
C CALL ANSTCKI(8)
123
C CALL ANCERR(792,ANINFO)
124
C IERR=IERR+1
125
! END DO
126
! END DO
127
128
C----- 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
137
C--------------------------------------------------------------------C
138
139
RETURN
140
END SUBROUTINE
r2r_check
groupdef_mod
Definition
groupdef_mod.F:662
message_mod
Definition
message_mod.F:1249
r2r_mod
Definition
r2r_mod.F:125
r2r_mod::isubdom_part
integer, dimension(:), allocatable isubdom_part
Definition
r2r_mod.F:131
r2r_mod::isubdom
integer, dimension(:,:), allocatable isubdom
Definition
r2r_mod.F:144
restmod
Definition
restart_mod.F:56
restmod::ipart
integer, dimension(:), allocatable, target ipart
Definition
restart_mod.F:60
r2r_check
subroutine r2r_check(iexter, igrnod, ipartl)
Definition
r2r_check.F:36
ancmsg
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
starter
source
coupling
rad2rad
r2r_check.F
Generated by
1.15.0