OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_ebcs_pres.F File Reference
#include "implicit_f.inc"
#include "units_c.inc"
#include "com04_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_ebcs_pres (igrsurf, npc, multi_fvm, unitab, id, titr, lsubmodel, ebcs)

Function/Subroutine Documentation

◆ hm_read_ebcs_pres()

subroutine hm_read_ebcs_pres ( type (surf_), dimension(nsurf), target igrsurf,
integer, dimension(*) npc,
type (multi_fvm_struct), intent(inout) multi_fvm,
type (unit_type_), intent(in) unitab,
integer id,
character(len=nchartitle), intent(in) titr,
type(submodel_data), dimension(nsubmod) lsubmodel,
type(t_ebcs_pres), intent(inout) ebcs )

Definition at line 37 of file hm_read_ebcs_pres.F.

38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
41 USE unitab_mod
42 USE message_mod
43 USE multi_fvm_mod
44 USE groupdef_mod
45 USE submodel_mod
46 USE ebcs_mod
48C-----------------------------------------------
49C I m p l i c i t T y p e s
50C-----------------------------------------------
51#include "implicit_f.inc"
52C-----------------------------------------------
53C C o m m o n B l o c k s
54C-----------------------------------------------
55#include "units_c.inc"
56#include "com04_c.inc"
57C-----------------------------------------------
58C D u m m y A r g u m e n t s
59C-----------------------------------------------
60 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
61 INTEGER NPC(*),ID
62 TYPE (MULTI_FVM_STRUCT), INTENT(INOUT) :: MULTI_FVM
63 TYPE (SURF_) ,TARGET, DIMENSION(NSURF) :: IGRSURF
64 CHARACTER(LEN=NCHARTITLE), INTENT(IN) :: TITR
65 TYPE(SUBMODEL_DATA) LSUBMODEL(NSUBMOD)
66 TYPE(t_ebcs_pres), INTENT(INOUT) :: EBCS
67C-----------------------------------------------
68C L o c a l V a r i a b l e s
69C-----------------------------------------------
70 INTEGER ISU,SURF,NGR2USR,IPRES,IRHO,J,NSEG,IENER,IVX,IVY,IVZ
71 my_real c,pres,rho,lcar,r1,r2,ener,vx,vy,vz
72 EXTERNAL ngr2usr
73 INTEGER, DIMENSION(:), POINTER :: INGR2USR
74 LOGICAL IS_ENCRYPTED, IS_AVAILABLE
75C-----------------------------------------------
76C S o u r c e L i n e s
77C-----------------------------------------------
78
79 ipres=0
80 ivx=0
81 ivy=0
82 ivz=0
83 irho=0
84 iener=0
85 c=zero
86 pres=zero
87 rho=zero
88 lcar=zero
89 r1=zero
90 r2=zero
91 ener=zero
92 vx=zero
93 vy=zero
94 vz=zero
95
96 ebcs%title = trim(titr)
97
98 CALL hm_option_is_encrypted(is_encrypted)
99 CALL hm_get_intv('entityid', surf ,is_available,lsubmodel)
100
101 isu=0
102 ingr2usr => igrsurf(1:nsurf)%ID
103 IF (surf/=0) isu=ngr2usr(surf,ingr2usr,nsurf)
104 nseg=0
105 IF (isu/=0) nseg=igrsurf(isu)%NSEG
106 IF(surf==0)THEN
107 ierr=ierr+1
108 WRITE(istdo,'(6X,A)')' ** A SURFACE SHOULD BE INPUT'
109 WRITE(iout, '(6X,A)')' ** A SURFACE SHOULD BE INPUT'
110 ELSEIF(isu==0)THEN
111 ierr=ierr+1
112 WRITE(istdo,*)' ** ERROR SURFACE NOT FOUND, ID=',surf
113 WRITE(iout,*) ' ** ERROR SURFACE NOT FOUND, ID=',surf
114 ELSEIF(nseg==0)THEN
115 ierr=ierr+1
116 WRITE(istdo,*)' ** ERROR EMPTY SURFACE',surf
117 WRITE(iout,*) ' ** ERROR EMPTY SURFACE',surf
118 ENDIF
119
120 !--line-2
121 CALL hm_get_floatv('rad_ebcs_c', c ,is_available,lsubmodel,unitab)
122
123 !--line-3
124 CALL hm_get_intv('rad_fct_pr', ipres ,is_available,lsubmodel)
125 CALL hm_get_floatv('rad_ebcs_fscale_pr', pres ,is_available,lsubmodel,unitab)
126
127 !--line-4
128 CALL hm_get_intv('rad_fct_rho', irho ,is_available,lsubmodel)
129 CALL hm_get_floatv('rad_ebcs_fscale_rho', rho ,is_available,lsubmodel,unitab)
130
131 !--line-5
132 CALL hm_get_intv('rad_fct_en', iener ,is_available,lsubmodel)
133 CALL hm_get_floatv('rad_ebcs_fscale_en', ener ,is_available,lsubmodel,unitab)
134
135 !--line-6
136 CALL hm_get_floatv('rad_ebcs_lc', lcar ,is_available,lsubmodel,unitab)
137 CALL hm_get_floatv('rad_ebcs_r1', r1 ,is_available,lsubmodel,unitab)
138 CALL hm_get_floatv('rad_ebcs_r2', r2 ,is_available,lsubmodel,unitab)
139
140
141 IF(surf/=0 .AND. isu/=0 .AND. nseg/=0)THEN
142 WRITE(iout,1001)id,trim(titr)
143 WRITE(iout,1101)surf,nseg,c,pres,ipres,rho,irho,ener,iener,lcar,r1,r2
144 ENDIF
145 DO j=1,nfunct
146 IF(ipres/=0 .AND. ipres==npc(j)) THEN
147 ipres=j
148 EXIT
149 ENDIF
150 ENDDO
151 DO j=1,nfunct
152 IF(irho/=0 .AND. irho==npc(j)) THEN
153 irho=j
154 EXIT
155 ENDIF
156 ENDDO
157 DO j=1,nfunct
158 IF(iener/=0 .AND. iener==npc(j)) THEN
159 iener=j
160 EXIT
161 ENDIF
162 ENDDO
163 DO j=1,nfunct
164 IF(ivx/=0 .AND. ivx==npc(j)) THEN
165 ivx=j
166 EXIT
167 ENDIF
168 ENDDO
169 DO j=1,nfunct
170 IF(ivy/=0 .AND. ivy==npc(j)) THEN
171 ivy=j
172 EXIT
173 ENDIF
174 ENDDO
175 DO j=1,nfunct
176 IF(ivz/=0 .AND. ivz==npc(j)) THEN
177 ivz=j
178 EXIT
179 ENDIF
180 ENDDO
181 !initialise la liste des noeuds de la surface
182! K1=2*NSEG+1
183! CALL EBCNODE(IEBCS(K1),NSEG,IGRSURF(ISU)%NODES,NOD)
184! K2=K1+NOD
185! CALL EBCRECT(IEBCS(K1),NSEG,IGRSURF(ISU)%NODES,NOD,IEBCS(K2))
186 ebcs%title = titr
187 ebcs%ipres = ipres
188 ebcs%irho = irho
189 ebcs%iener = iener
190 ebcs%ivx = ivx
191 ebcs%ivy = ivy
192 ebcs%ivz = ivz
193 ebcs%c = c
194 ebcs%pres = pres
195 ebcs%rho = rho
196 ebcs%lcar = lcar
197 ebcs%r1 = r1
198 ebcs%r2 = r2
199 ebcs%ener = ener
200 ebcs%vx = vx
201 ebcs%vy = vy
202 ebcs%vz = vz
203
204 IF (multi_fvm%IS_USED) THEN
205 CALL ancmsg(msgid = 1602, msgtype = msgerror, anmode = aninfo,
206 . i1 = id, c1 = trim(titr), c2 = "NOT COMPATIBLE WITH LAW 151")
207 ENDIF
208
209C-----------
210 RETURN
211C-----------
212
213 1001 FORMAT( //'IMPOSED PRESSURE EBCS NUMBER . . . . . . :',i8,1x,a)
214 1101 FORMAT(
215 . ' ON SURFACE . . . . . . . . . . . . . . . ',i8,/,
216 . ' NUMBER OF SEGMENTS FOUND. . . . . . . . . ',i8,/,
217 . ' SPEED OF SOUND . . . . . . . . . . . . . ',e16.6,/,
218 . ' IMPOSED PRESSURE . . . . . . . . . . . . ',e16.6,/,
219 . ' PRESSURE SCALING FUNCTION . . . . . . . . ',i8,/,
220 . ' IMPOSED DENSITY . . . . . . . . . . . . . ',e16.6,/,
221 . ' DENSITY SCALING FUNCTION . . . . . . . . ',i8,/,
222 . ' IMPOSED ENERGY . . . . . . . . . . . . . ',e16.6,/,
223 . ' ENERGY SCALING FUNCTION . . . . . . . . . ',i8,/,
224 . ' CHARACTERISTIC LENGTH . . . . . . . . . . ',e16.6,/,
225 . ' LINEAR RESISTANCE . . . . . . . . . . . . ',e16.6,/,
226 . ' QUADRATIC RESISTANCE . . . . . . . . . . ',e16.6,/)
227
#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_is_encrypted(is_encrypted)
initmumps id
integer, parameter nchartitle
integer function ngr2usr(iu, igr, ngr)
Definition nintrr.F:325
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