OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_ale_link_vel.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_ale_link ../starter/source/constraints/ale/hm_read_ale_link_vel.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| ancmsg ../starter/source/output/message/message.F
29!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
30!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
31!|| hm_option_read_key ../starter/source/devtools/hm_reader/hm_option_read_key.F
32!|| hm_option_start ../starter/source/devtools/hm_reader/hm_option_start.F
33!|| ngr2usr ../starter/source/system/nintrr.F
34!|| usr2sys ../starter/source/system/sysfus.F
35!||--- uses -----------------------------------------------------
36!|| format_mod ../starter/share/modules1/format_mod.F90
37!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
38!|| message_mod ../starter/share/message_module/message_mod.f
39!|| submodel_mod ../starter/share/modules1/submodel_mod.F
40!||====================================================================
41 SUBROUTINE hm_read_ale_link(ICODE, ISKEW, ITAB, ITABM1, IKINE,
42 . IGRNOD, IBCSLAG, LAG_NCF, LAG_NKF, LAG_NHF,
43 . IKINE1LAG, LINALE, LSUBMODEL, UNITAB)
44C-----------------------------------------------
45C D e s c r i p t i o n
46C-----------------------------------------------
47C This subroutine is reading /ALE/LINK/VEL options in user input file
48C-----------------------------------------------
49C M o d u l e s
50C-----------------------------------------------
51 USE message_mod
52 USE groupdef_mod
53 USE unitab_mod
55 USE submodel_mod
57 USE format_mod , ONLY : lfield
58C-----------------------------------------------
59C I m p l i c i t T y p e s
60C-----------------------------------------------
61#include "implicit_f.inc"
62C-----------------------------------------------
63C C o m m o n B l o c k s
64C-----------------------------------------------
65#include "com04_c.inc"
66#include "units_c.inc"
67C-----------------------------------------------
68C D u m m y A r g u m e n t s
69C-----------------------------------------------
70 INTEGER,INTENT(IN) :: ICODE(NUMNOD), ISKEW(*), ITAB(NUMNOD), ITABM1(*), IKINE(*),IBCSLAG(5,*)
71 INTEGER,INTENT(IN) :: LAG_NCF,LAG_NKF,LAG_NHF,IKINE1LAG(*)
72 INTEGER,INTENT(INOUT) :: LINALE(*)
73 TYPE(submodel_data), DIMENSION(NSUBMOD), INTENT(IN) :: LSUBMODEL
74 TYPE(unit_type_), INTENT(IN) :: UNITAB
75C-----------------------------------------------
76C L o c a l V a r i a b l e s
77C-----------------------------------------------
78 INTEGER GRID_DOF, BID, IFORM, NODE_ID1, NODE_ID2,POS,IAD0,NNOD
79 INTEGER I,JJ(12), IC, NC, N, NUSR, IS, IC1, IC2, IC3, IC4,
80 . nosys, j,j10(10),igr,igrs,isu,ibcale,j3(3),k,
81 . ic0, ic01, ic02, ic03, ic04, id ,ilagm, nbcslag,
82 . flag_fmt,flag_fmt_tmp,ifix_tmp,ikine1(3*numnod),igrns
83 CHARACTER(LEN=NCHARKEY) :: KEY,KEY2
84 CHARACTER(LEN=NCHARFIELD) :: STRING, CHAR_XYZ
85 CHARACTER(LEN=NCHARTITLE) :: TITR
86 CHARACTER :: OPT*8,MESS*40
87 my_real tstart,tstop
88 LOGICAL :: IS_AVAILABLE
89 INTEGER :: WX, WY, WZ
90C-----------------------------------------------
91 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
92C-----------------------------------------------
93C E x t e r n a l F u n c t i o n s
94C-----------------------------------------------
95 INTEGER USR2SYS,MY_OR,CHECK_NEW,NGR2USR
96!
97 INTEGER, DIMENSION(:), POINTER :: INGR2USR
98C-----------------------------------------------
99C S o u r c e L i n e s
100C-----------------------------------------------
101 pos=0
102 igrns=0
103 tstart=zero
104 tstop=zero
105
106 WRITE(iout,1000)
107 CALL hm_option_start('/ALE/LINK/VEL')
108
109 DO i = 1, nalelk
110 CALL hm_option_read_key(lsubmodel, option_id = n, option_titr = titr)
111 CALL hm_get_intv('node_ID1', node_id1, is_available, lsubmodel)
112 CALL hm_get_intv('node_ID2', node_id2, is_available, lsubmodel)
113 CALL hm_get_intv('grnod_ID', igr, is_available, lsubmodel)
114 CALL hm_get_intv('Wx', wx, is_available, lsubmodel)
115 CALL hm_get_intv('Wy', wy, is_available, lsubmodel)
116 CALL hm_get_intv('Wz', wz, is_available, lsubmodel)
117 CALL hm_get_intv('Iform', iform, is_available, lsubmodel)
118 CALL hm_get_floatv('Tstart', tstart, is_available, lsubmodel, unitab)
119 CALL hm_get_floatv('Tstop', tstop, is_available, lsubmodel, unitab)
120 IF (tstop == zero) tstop = ep30
121 ingr2usr => igrnod(1:ngrnod)%ID
122 igrs=ngr2usr(igr,ingr2usr,ngrnod)
123 IF(igrs==0)THEN
124 WRITE(iout,*) ' -- NODE GROUP',igr,' NOT FOUND'
125 WRITE(istdo,*) ' -- NODE GROUP',igr,' NOT FOUND'
126 ENDIF
127
128 j3(1) = wx
129 j3(2) = wy
130 j3(3) = wz
131 ic = j3(1) * 4 + j3(2) * 2 + j3(3)
132 char_xyz = ' '
133 k=lfield
134 IF(j3(3)==1 )THEN
135 char_xyz(k:k)='Z'
136 k=k-1
137 ENDIF
138 IF(j3(2)==1 )THEN
139 char_xyz(k:k)='Y'
140 k=k-1
141 ENDIF
142 IF(j3(1)==1 )THEN
143 char_xyz(k:k)='X'
144 ENDIF
145!
146 igrns = igrnod(igrs)%SORTED
147!
148 IF(iform==0.AND.igrns /= 1)THEN
149 CALL ancmsg(msgid=271,anmode=aninfo,msgtype=msgerror,i1=n,i2=iform)
150 ELSE
151 WRITE(iout,1100) n,trim(titr),node_id1,node_id2,igr,char_xyz,iform,tstart,tstop
152 ENDIF
153
154 linale(pos+1)=n
155 linale(pos+2)=node_id1
156 linale(pos+3)=node_id2
157 linale(pos+4)=-1
158 linale(pos+5)=ic
159 linale(pos+6)=iform
160 linale(pos+7)=igrs
161
162 pos = pos+1+6
163 mess=''
164 mess(1:10)='ALE LINKS'
165 bid=usr2sys(node_id1,itabm1,mess,n)
166 bid=usr2sys(node_id2,itabm1,mess,n)
167 ENDDO
168C-----------------------------------------------
1691000 FORMAT(/
170 . ' ALE LINKS DEFINITIONS '/
171 . ' ---------------------- '/)
172C-----------------------------------------------
1731100 FORMAT( /5x,'ALE LINK ID ',i10,': ',a,
174 . /10x,'MAIN NODE 1 . . . . . . . . . . . . . ',i10
175 . /10x,'MAIN NODE 2 . . . . . . . . . . . . . ',i10
176 . /10x,'GROUP IDENTIFIER FOR SECONDARY NODES. . . . ',i10
177 . /10x,'GRID VELOCITY DIRECTIONS TO LINK. . . . ',a
178 . /10x,'FORMULATION . . . . . . . . . . . . . . ',i10
179 . /10x,'START TIME. . . . . . . . . . . . . . . ',1pg20.13
180 . /10x,'STOP TIME . . . . . . . . . . . . . . . ',1pg20.13/)
181C-----------------------------------------------
182 RETURN
183 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_option_start(entity_type)
initmumps id
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
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
program starter
Definition starter.F:39