OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_inter_lagmul_type02.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!|| hm_read_inter_lagmul_type02 ../starter/source/interfaces/int02/hm_read_inter_lagmul_type02.F
25!||--- called by ------------------------------------------------------
26!|| hm_read_inter_lagmul ../starter/source/interfaces/reader/hm_read_inter_lagmul.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| definter ../starter/source/interfaces/interf1/definter.F
30!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
31!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
32!|| ngr2usr ../starter/source/system/nintrr.F
33!||--- uses -----------------------------------------------------
34!|| message_mod ../starter/share/message_module/message_mod.F
35!|| submodel_mod ../starter/share/modules1/submodel_mod.F
36!||====================================================================
38 1 IPARI ,FRIGAP ,NOINT ,
39 2 IGRNOD ,IGRSURF ,DEF_INTER ,TITR ,UNITAB ,
40 3 LSUBMODEL ,NPARI ,NPARIR)
41C============================================================================
42C-----------------------------------------------
43C M o d u l e s
44C-----------------------------------------------
45 USE unitab_mod
46 USE message_mod
47 USE groupdef_mod
50C-----------------------------------------------
51C I m p l i c i t T y p e s
52C-----------------------------------------------
53#include "implicit_f.inc"
54C-----------------------------------------------
55C C o m m o n B l o c k s
56C-----------------------------------------------
57#include "scr17_c.inc"
58C-----------------------------------------------
59C D u m m y A r g u m e n t s
60C-----------------------------------------------
61 INTEGER,INTENT(IN) :: NPARI, NPARIR !< array sizes IPARI and FRIGAP
62 INTEGER ISU1,ISU2,NOINT
63 INTEGER IPARI(NPARI),DEF_INTER(100)
64 my_real frigap(nparir)
65 CHARACTER(LEN=NCHARTITLE)::TITR
66C-----------------------------------------------
67 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
68 TYPE (SURF_) ,TARGET , DIMENSION(NSURF) :: IGRSURF
69 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
70 TYPE(submodel_data) LSUBMODEL(NSUBMOD)
71C----------------------s-------------------------
72C C o m m o n B l o c k s
73C-----------------------------------------------
74#include "com04_c.inc"
75#include "units_c.inc"
76C-----------------------------------------------
77C L o c a l V a r i a b l e s
78C-----------------------------------------------
79 INTEGER NTYP, ILEV, IPRINT,IASSIGN,IGNORE,
80 . IDEL2,IBUC,INTKG,IS1,IS2
81 my_real
82 . startt,stopt,dsearch
83 CHARACTER(LEN=NCHARKEY) :: KEY1
84 INTEGER, DIMENSION(:), POINTER :: INGR2USR
85 LOGICAL IS_AVAILABLE
86C-----------------------------------------------
87C E x t e r n a l F u n c t i o n s
88C-----------------------------------------------
89 INTEGER NGR2USR
90C=======================================================================
91C READING LAGRANGE MULTIPLIER INTERFACES /INTER/LAGMUL/TYPE2
92C=======================================================================
93
94C Initializations
95 is1=0
96 is2=0
97 ibuc=0
98C
99 ntyp = 2
100 ipari(15)=noint
101 ipari(7) =ntyp
102C
103 iprint = 0
104C------------------------------------------------------------
105C Card1
106C------------------------------------------------------------
107 CALL hm_get_intv('secondaryentityids',isu1,is_available,lsubmodel)
108 CALL hm_get_intv('mainentityids',isu2,is_available,lsubmodel)
109 CALL hm_get_intv('Isearch',ibuc,is_available,lsubmodel)
110 CALL hm_get_floatv('dsearch',dsearch,is_available,lsubmodel,unitab)
111C
112 key1='ibuc'
113 IASSIGN = 1
114 CALL DEFINTER(KEY1 ,IBUC ,IASSIGN ,IPRINT ,
115 . NTYP ,DEF_INTER)
116
117C
118 IF(IBUC==0)IBUC=2
119C------------------------------------------------------------
120 IF (ISU1==0) THEN
121 CALL ANCMSG(MSGID=1001,
122 . ANMODE=ANINFO_BLIND_1,
123 . MSGTYPE=MSGERROR,
124 . I1=NOINT,
125 . C1=TITR)
126 END IF
127 IF(ISU2 == 0) THEN
128 CALL ANCMSG(MSGID=119,
129 . ANMODE=ANINFO_BLIND_1,
130 . MSGTYPE=MSGERROR,
131 . I1=NOINT,
132 . C1=TITR)
133 END IF
134C
135 IS1=2
136 IS2=1
137 INGR2USR => IGRNOD(1:NGRNOD)%ID
138 ISU1=NGR2USR(ISU1,INGR2USR,NGRNOD)
139 INGR2USR => IGRSURF(1:NSURF)%ID
140 ISU2=NGR2USR(ISU2,INGR2USR,NSURF)
141 IF (IGRNOD(ISU1)%NENTITY == 0) THEN
142 CALL ANCMSG(MSGID=1131,
143 . ANMODE=ANINFO_BLIND_1,
144 . MSGTYPE=MSGERROR,
145 . I1=NOINT,
146 . C1=TITR)
147 END IF
148
149C-------*STORAGE IN IPARI AND FRIGAP *-------------------
150C
151 IPARI(12) = IBUC
152
153 IPARI(45) = ISU1
154 IPARI(46) = ISU2
155 IPARI(13) = IS1*10+IS2
156
157 FRIGAP(4) = DSEARCH
158
159 IDEL2 = 0
160 IPARI(17)= IDEL2
161C
162C IGNORE is working with /INTER/LAGMUL/TYPE2 but not documented
163 IGNORE = 0
164 IPARI(34) = IGNORE
165
166 INTKG = 0
167 IPARI(65) = INTKG
168
169 ILEV = 0
170 IPARI(20) = ILEV
171
172 STARTT = ZERO
173 STOPT = EP30
174 FRIGAP(3) = STARTT
175 FRIGAP(11)= STOPT
176C
177C------------------------------------------------------------
178C PRINTOUT
179C------------------------------------------------------------
180C
181 WRITE(IOUT,1602) IBUC,FRIGAP(4)
182C
183 IF(IS1==0)THEN
184 WRITE(IOUT,'(6x,a)')'no secondary surface input'
185 ELSEIF(IS1==1)THEN
186 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
187 ELSEIF(IS1==2)THEN
188 WRITE(IOUT,'(6x,a)')'secondary surface input by nodes'
189 ELSEIF(IS1==3)THEN
190 WRITE(IOUT,'(6x,a)')'secondary surface input by segments'
191 ELSEIF(IS1==4 )THEN
192 WRITE(IOUT,'(6x,a)')'secondary side input by bricks'
193 ELSEIF(IS1==5 )THEN
194 WRITE(IOUT,'(6x,a)')'secondary side input by solid elements'
195 ENDIF
196 IF(IS2==0)THEN
197 WRITE(IOUT,'(6x,a)')'no main surface input'
198 ELSEIF(IS2==1)THEN
199 WRITE(IOUT,'(6x,a)')'main surface input by segments'
200 ELSEIF(IS2==2)THEN
201 WRITE(IOUT,'(6x,a)')'main surface input by nodes'
202 ELSEIF(IS2==3)THEN
203 WRITE(IOUT,'(6x,a)')'main surface input by segments'
204 ELSEIF(IS2==4)THEN
205 WRITE(IOUT,'(6x,a)')'main surface refers ',
206 . 'to hyper-ellipsoidal surface'
207 ENDIF
208C
209C--------------------------------------------------------------
210 RETURN
211
212 1602 FORMAT(//
213 . ' type==2 tied sliding ' //
214 . ' lagrange multiplier formulation ' /
215 . ' search formulation. . . . . . . . . . . . ',I5/,
216 . ' search distance . . . . . . . . . . . . . ',1PG20.13/)
217
218 END
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_read_inter_lagmul_type02(ipari, frigap, noint, igrnod, igrsurf, def_inter, titr, unitab, lsubmodel, npari, nparir)
integer, parameter nchartitle
integer, parameter ncharkey
integer nsubmod
int main(int argc, char *argv[])