OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
lecstamp.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/.
23CCgw| LECTUR /lectur1/lectur.F
24!||====================================================================
25!|| lecstamp ../starter/source/interfaces/interf1/lecstamp.F
26!||--- called by ------------------------------------------------------
27!|| lectur ../starter/source/starter/lectur.F
28!||--- calls -----------------------------------------------------
29!|| ancmsg ../starter/source/output/message/message.F
30!|| fretitl2 ../starter/source/starter/freform.F
31!|| hm_get_floatv ../starter/source/devtools/hm_reader/hm_get_floatv.F
32!|| hm_get_intv ../starter/source/devtools/hm_reader/hm_get_intv.F
33!|| hm_option_read_key ../starter/source/devtools/hm_reader/hm_option_read_key.f
34!|| hm_option_start ../starter/source/devtools/hm_reader/hm_option_start.F
35!|| ifrontplus ../starter/source/spmd/node/frontplus.F
36!|| usr2sys ../starter/source/system/sysfus.F
37!||--- uses -----------------------------------------------------
38!|| hm_option_read_mod ../starter/share/modules1/hm_option_read_mod.F
39!|| intstamp_mod ../starter/share/modules1/intstamp_mod.F
40!|| message_mod ../starter/share/message_module/message_mod.F
41!|| submodel_mod ../starter/share/modules1/submodel_mod.F
42!||====================================================================
43 SUBROUTINE lecstamp(IPARI ,INTSTAMP, UNITAB, NPBY,
44 . ICODE ,NOM_OPT ,LSUBMODEL)
45C-----------------------------------------------
46C M o d u l e s
47C-----------------------------------------------
48 USE unitab_mod
49 USE message_mod
50 USE intstamp_mod
51 USE submodel_mod
54C-----------------------------------------------
55C I m p l i c i t T y p e s
56C-----------------------------------------------
57#include "implicit_f.inc"
58C-----------------------------------------------
59C C o m m o n B l o c k s
60C-----------------------------------------------
61#include "com01_c.inc"
62#include "com04_c.inc"
63#include "param_c.inc"
64#include "scr17_c.inc"
65#include "units_c.inc"
66C-----------------------------------------------
67C D u m m y A r g u m e n t s
68C-----------------------------------------------
69 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
70 INTEGER NOM_OPT(LNOPT1,*)
71 INTEGER IPARI(NPARI,*), NPBY(NNPBY,*),
72 . icode(numnod)
73 TYPE(intstamp_data) INTSTAMP(*)
74 TYPE(submodel_data) LSUBMODEL(*)
75C-----------------------------------------------
76C L o c a l V a r i a b l e s
77C-----------------------------------------------
78 INTEGER J, L, NI, NIN, N,
79 . ntyp,noint,nstamp,irot,
80 . iflagunit,uid,flag_fmt,flag_fmt_tmp,ifix_tmp,
81 . id_intdamp,intdamp, irb, msr, p, ic, sub_id
83 . fac_l,fac_t,fac_m,fac_i,
84 . damp, dampr
85 CHARACTER MESS*40
86 CHARACTER(LEN=NCHARKEY) :: KEY
87 CHARACTER(LEN=NCHARTITLE) :: TITR
88 LOGICAL IS_AVAILABLE
89C-----------------------------------------------
90C E x t e r n a l F u n c t i o n s
91C-----------------------------------------------
92 INTEGER USR2SYS
93 DATA mess/'INTERFACE INPUT '/
94C=======================================================================
95
96 ni= 0
97 nstamp = 0
98C
99C--------------------------------------------------
100C START BROWSING MODEL INTERFACES
101C--------------------------------------------------
102 CALL hm_option_start('/INTER')
103C--------------------------------------------------
104C BROWSING MODEL INTERFACES 1->HM_NINTER
105C--------------------------------------------------
106 DO nin=1,hm_ninter
107C
108C--------------------------------------------------
109C EXTRACT DATAS OF /INTER/... LINE
110C--------------------------------------------------
111 CALL hm_option_read_key(lsubmodel,
112 . option_id = noint,
113 . unit_id = uid,
114 . submodel_id = sub_id,
115 . option_titr = titr,
116 . keyword2 = key)
117C--------------------------------------------------
118C CHECK IF READ OPTION IS /INTER/SUB
119C--------------------------------------------------
120 IF(key(1:len_trim(key))=='SUB') cycle
121C--------------------------------------------------
122 ni=ni+1
123C
124 ntyp = ipari(7,ni)
125 noint = ipari(15,ni)
126C
127 IF (ntyp == 21) THEN
128
129 nstamp=nstamp+1
130 intstamp(nstamp)%NOINTER=ni
131
132 WRITE(iout,2100) noint
133 is_available = .false.
134c associated rbody
135 CALL hm_get_intv('ID_RBY',intstamp(nstamp)%IRB,is_available,lsubmodel)
136 CALL hm_get_intv('InterfaceId',id_intdamp,is_available,lsubmodel)
137 CALL hm_get_floatv('DAMP1',damp,is_available,lsubmodel,unitab)
138 CALL hm_get_floatv('DAMP2',dampr,is_available,lsubmodel,unitab)
139
140C associated rbody & main node
141 irb=0
142 DO n=1,nrbody
143 IF(intstamp(nstamp)%IRB==npby(6,n))THEN
144 IF(npby(12,n) == 0) THEN
145 irb=n
146 EXIT
147 ELSE
148 CALL ancmsg(msgid=1635,
149 . msgtype=msgerror,
150 . anmode=anstop,
151 . i1=noint,
152 . c1=titr,
153 . i2=intstamp(nstamp)%IRB)
154 ENDIF
155 END IF
156 END DO
157 IF(irb==0)THEN
158 CALL ancmsg(msgid=684,
159 . msgtype=msgerror,
160 . anmode=anstop,
161 . i1=noint,
162 . c1=titr,
163 . i2=intstamp(nstamp)%IRB)
164 END IF
165 intstamp(nstamp)%IRB=irb
166 intstamp(nstamp)%MSR=npby(1,irb)
167 DO p = 1, nspmd
168 CALL ifrontplus(npby(1,irb),p)
169 ENDDO
170C
171 WRITE(iout,2111) id_intdamp,damp
172 intstamp(nstamp)%INTDAMP=id_intdamp
173 intstamp(nstamp)%DAMP=damp
174 irot=1
175 ic=mod(icode(npby(1,irb)),512)
176 IF(ic==448)irot=0
177 IF(irot/=0)THEN
178 WRITE(iout,2112) dampr
179 intstamp(nstamp)%DAMPR=dampr
180 END IF
181 intstamp(nstamp)%IROT=irot
182 END IF
183 END DO
184C-----
185 DO nin=1,nstamp
186 id_intdamp=intstamp(nin)%INTDAMP
187 IF(id_intdamp==0) GOTO 110
188 DO j=1,nstamp
189 IF(ipari(15,intstamp(j)%NOINTER)==id_intdamp)THEN
190 intstamp(nin)%INTDAMP=j
191 GOTO 110
192 END IF
193 END DO
194 CALL fretitl2(titr,
195 . nom_opt(lnopt1-ltitr+1,nin),ltitr)
196 CALL ancmsg(msgid=868,
197 . msgtype=msgerror,
198 . anmode=aninfo_blind_1,
199 . i1=nom_opt(1,nin),
200 . c1=titr,
201 . i2=id_intdamp)
202 110 CONTINUE
203 END DO
204C-----
205 2100 FORMAT(//
206 . ' ADDITIONAL INFO FOR INTERFACE ID. . . . . .',i1/,
207 . ' INTERFACE TYPE. . . . .21',/)
208 2111 FORMAT(' DAMPING WRT REFERENCE INTERFACE . . . . . . .',i10/,
209 . ' (0: DAMPING WRT GLOBAL FRAME). . . .',/,
210 . ' TRANSLATIONAL CRITICAL DAMPING FACTOR . . . .',
211 . 1pg20.13/)
212 2112 FORMAT(' ROTATIONAL CRITICAL DAMPING FACTOR. . . . . .',
213 . 1pg20.13/)
214C-----
215 RETURN
216 END
#define my_real
Definition cppsort.cpp:32
subroutine ifrontplus(n, p)
Definition frontplus.F:100
subroutine hm_get_floatv(name, rval, is_available, lsubmodel, unitab)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_read_key(lsubmodel, option_id, unit_id, submodel_index, submodel_id, option_titr, keyword1, keyword2, keyword3, keyword4, opt_pos)
subroutine hm_option_start(entity_type)
subroutine lecstamp(ipari, intstamp, unitab, npby, icode, nom_opt, lsubmodel)
Definition lecstamp.F:45
integer, parameter nchartitle
integer, parameter ncharkey
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
subroutine fretitl2(titr, iasc, l)
Definition freform.F:804
program starter
Definition starter.F:39