OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_spcnd.F File Reference
#include "implicit_f.inc"
#include "scr17_c.inc"
#include "com04_c.inc"
#include "sphcom.inc"
#include "units_c.inc"
#include "param_c.inc"
#include "r2r_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_spcnd (ispcond, iskew, itab, itabm1, ikine, igrnod, nod2sp, iframe, nom_opt, lsubmodel)

Function/Subroutine Documentation

◆ hm_read_spcnd()

subroutine hm_read_spcnd ( integer, dimension(nispcond,*) ispcond,
integer, dimension(*) iskew,
integer, dimension(*) itab,
integer, dimension(*) itabm1,
integer, dimension(*) ikine,
type (group_), dimension(ngrnod), target igrnod,
integer, dimension(*) nod2sp,
integer, dimension(liskn,*) iframe,
integer, dimension(lnopt1,*) nom_opt,
type(submodel_data), dimension(*) lsubmodel )

Definition at line 42 of file hm_read_spcnd.F.

44C-----------------------------------------------
45C M o d u l e s
46C-----------------------------------------------
47 USE message_mod
48 USE r2r_mod
49 USE groupdef_mod
50 USE submodel_mod
53C-----------------------------------------------
54C I m p l i c i t T y p e s
55C-----------------------------------------------
56#include "implicit_f.inc"
57C-----------------------------------------------
58C C o m m o n B l o c k s
59C-----------------------------------------------
60#include "scr17_c.inc"
61#include "com04_c.inc"
62#include "sphcom.inc"
63#include "units_c.inc"
64#include "param_c.inc"
65#include "r2r_c.inc"
66C-----------------------------------------------
67C D u m m y A r g u m e n t s
68C-----------------------------------------------
69 INTEGER ISPCOND(NISPCOND,*), ISKEW(*), ITAB(*), ITABM1(*),
70 . IKINE(*),NOD2SP(*),IFRAME(LISKN,*)
71 INTEGER NOM_OPT(LNOPT1,*)
72 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
73C-----------------------------------------------
74 TYPE (GROUP_) ,TARGET, DIMENSION(NGRNOD) :: IGRNOD
75C-----------------------------------------------
76C L o c a l V a r i a b l e s
77C-----------------------------------------------
78 INTEGER I,ID, IC, N, IS, IC1, IC2, IC3, IC4,
79 . NOSYS, J,IGR,IGRS,K,
80 . NCELL,
81 . ILEV, NY
82 CHARACTER MESS*40
83 CHARACTER(LEN=NCHARTITLE) :: TITR
84 CHARACTER(LEN=NCHARKEY) :: KEY
85 CHARACTER(LEN=NCHARFIELD) :: DIR
86 LOGICAL IS_AVAILABLE
87C-----------------------------------------------
88C E x t e r n a l F u n c t i o n s
89C-----------------------------------------------
90 INTEGER NGR2USR
91 INTEGER, DIMENSION(:), POINTER :: INGR2USR
92C-----------------------------------------------
93 DATA mess/'SPECIFIC TO SPH SYMMETRY CONDITIONS '/
94C-----------------------------------------------
95 WRITE(iout,1000)
96 ny = 0
97 CALL hm_option_start('/SPHBCS')
98
99 DO i=1,nspcond
100 ny=ny+1
101C----------Multidomaines --> on ignore les BCS SPH non tagees-----------
102 IF(nsubdom>0)THEN
103 IF(tagsphbcs(ny)==0)CALL hm_sz_r2r(tagsphbcs,ny,lsubmodel)
104 END IF
105C--------------------------------------------------
106C EXTRACT DATAS OF /SPHBCS/... LINE
107C--------------------------------------------------
108 CALL hm_option_read_key(lsubmodel,
109 . option_id = id,
110 . option_titr = titr,
111 . keyword2 = key)
112 nom_opt(1,i)=id
113 CALL fretitl(titr,nom_opt(lnopt1-ltitr+1,i),ltitr)
114 IF (key(1:5)=='SLIDE')THEN
115 ispcond(5,i)=1
116 ELSEIF (key(1:4)=='TIED')THEN
117 ispcond(5,i)=0
118 ELSE
119 CALL ancmsg(msgid=398,
120 . msgtype=msgerror,
121 . anmode=aninfo_blind_1,
122 . c1=key)
123 ENDIF
124 ispcond(nispcond,i)=id
125C--------------------------------------------------
126C EXTRACT DATAS (INTEGER VALUES)
127C--------------------------------------------------
128 CALL hm_get_intv('inputsystem',is,is_available,lsubmodel)
129 CALL hm_get_intv('entityid',igr,is_available,lsubmodel)
130 CALL hm_get_intv('rad_sphbcs_ilev',ilev,is_available,lsubmodel)
131C--------------------------------------------------
132C EXTRACT DATAS (STRING)
133C--------------------------------------------------
134 CALL hm_get_string('rad_dir',dir,ncharfield,is_available)
135C
136 IF(dir(1:1)=='X')THEN
137 ic=1
138 ELSEIF(dir(1:1)=='Y')THEN
139 ic=2
140 ELSEIF(dir(1:1)=='Z')THEN
141 ic=3
142 ENDIF
143 IF(ilev/=0.AND.ilev/=1)THEN
144 CALL ancmsg(msgid=399,
145 . msgtype=msgerror,
146 . anmode=aninfo_blind_1,
147 . i1=ilev)
148 ENDIF
149 ispcond(1,i)=ilev
150 ispcond(2,i)=ic
151 IF (is==0)THEN
152 ispcond(3,i)=1
153 GOTO 111
154 ELSE
155 DO j=1,numfram
156 IF (iframe(4,j+1)==is)THEN
157 ispcond(3,i)=j+1
158 GOTO 111
159 ENDIF
160 ENDDO
161 ENDIF
162 CALL ancmsg(msgid=400,
163 . msgtype=msgerror,
164 . anmode=aninfo_blind_1,
165 . i1=is)
166 111 CONTINUE
167C
168 ingr2usr => igrnod(1:ngrnod)%ID
169 igrs=ngr2usr(igr,ingr2usr,ngrnod)
170 ispcond(4,i)=igrs
171C
172 DO nosys=1,numnod
173 ncell=nod2sp(nosys)
174 IF (ncell==0) THEN
175 ELSE
176 ENDIF
177 ENDDO
178 WRITE(iout,1100)id,trim(titr),dir(1:1),is,igr,ilev
179 ENDDO
180C-------------------------------------
181 RETURN
182C
1831000 FORMAT(
184 . ' SPECIFIC TO SPH SYMMETRY CONDITIONS '/
185 . ' ---------------------------------- '/)
1861100 FORMAT(/5x,'CONDITION ID ',i10,1x,a
187 . /10x,'NORMAL DIRECTION TO SYMMETRY PLANE ',a10,
188 . /10x,'REFERENCE FRAME ID ',i10,
189 . /10x,'NODES GROUP ID FOR KINEMATIC CONDITIONS ',i10,
190 . /10x,'FORMULATION LEVEL ',i10)
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_get_string(name, sval, size, is_available)
subroutine hm_option_start(entity_type)
initmumps id
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
integer, dimension(:), allocatable tagsphbcs
Definition r2r_mod.F:139
integer function ngr2usr(iu, igr, ngr)
Definition nintrr.F:325
subroutine hm_sz_r2r(tag, val, lsubmodel)
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 fretitl(titr, iasc, l)
Definition freform.F:620