OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
hm_read_ebcs_valvout.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_valvout (igrsurf, npc, multi_fvm, unitab, id, titr, lsubmodel, ebcs)

Function/Subroutine Documentation

◆ hm_read_ebcs_valvout()

subroutine hm_read_ebcs_valvout ( 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_valvout), intent(inout) ebcs )

Definition at line 37 of file hm_read_ebcs_valvout.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_valvout), 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
71 my_real c,pres,rho,lcar,r1,r2,ener
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 irho=0
81 iener=0
82 c=zero
83 pres=zero
84 rho=zero
85 lcar=zero
86 r1=zero
87 r2=zero
88 ener=zero
89
90 ebcs%title = trim(titr)
91
92 CALL hm_option_is_encrypted(is_encrypted)
93 CALL hm_get_intv('entityid', surf ,is_available,lsubmodel)
94
95 isu=0
96 ingr2usr => igrsurf(1:nsurf)%ID
97 IF (surf/=0) isu=ngr2usr(surf,ingr2usr,nsurf)
98 nseg=0
99 IF (isu/=0) nseg=igrsurf(isu)%NSEG
100 IF(surf==0)THEN
101 ierr=ierr+1
102 WRITE(istdo,'(6X,A)')' ** A SURFACE SHOULD BE INPUT'
103 WRITE(iout, '(6x,a)')' ** a surface should be input'
104 ELSEIF(ISU==0)THEN
105 IERR=IERR+1
106 WRITE(ISTDO,*)' ** error surface not found, id=',SURF
107 WRITE(IOUT,*) ' ** error surface not found, id=',SURF
108 ELSEIF(NSEG==0)THEN
109 IERR=IERR+1
110 WRITE(ISTDO,*)' ** error empty surface',SURF
111 WRITE(IOUT,*) ' ** error empty surface',SURF
112 ENDIF
113
114!--line-2
115 CALL HM_GET_FLOATV('rad_ebcs_c', C ,IS_AVAILABLE,LSUBMODEL,UNITAB)
116
117!--line-3
118 CALL HM_GET_INTV('rad_fct_pr', IPRES ,IS_AVAILABLE,LSUBMODEL)
119 CALL HM_GET_FLOATV('rad_ebcs_fscale_pr', PRES ,IS_AVAILABLE,LSUBMODEL,UNITAB)
120
121 !--line-4
122 CALL HM_GET_INTV('rad_fct_rho', IRHO ,IS_AVAILABLE,LSUBMODEL)
123 CALL HM_GET_FLOATV('rad_ebcs_fscale_rho', RHO ,IS_AVAILABLE,LSUBMODEL,UNITAB)
124
125 !--line-5
126 CALL HM_GET_INTV('rad_fct_en', IENER ,IS_AVAILABLE,LSUBMODEL)
127 CALL HM_GET_FLOATV('rad_ebcs_fscale_en', ENER ,IS_AVAILABLE,LSUBMODEL,UNITAB)
128
129 !--line-6
130 CALL HM_GET_FLOATV('rad_ebcs_lc', LCAR ,IS_AVAILABLE,LSUBMODEL,UNITAB)
131 CALL HM_GET_FLOATV('rad_ebcs_r1', R1 ,IS_AVAILABLE,LSUBMODEL,UNITAB)
132 CALL HM_GET_FLOATV('rad_ebcs_r2', R2 ,IS_AVAILABLE,LSUBMODEL,UNITAB)
133
134.AND..AND. IF(SURF/=0 ISU/=0 NSEG/=0)THEN
135 WRITE(IOUT,1003)ID,TRIM(TITR)
136 WRITE(IOUT,1101)SURF,NSEG,C,PRES,IPRES,RHO,IRHO,ENER,IENER,LCAR,R1,R2
137 ENDIF
138 DO J=1,NFUNCT
139.AND. IF(IPRES/=0 IPRES==NPC(J)) THEN
140 IPRES=J
141 EXIT
142 ENDIF
143 ENDDO
144 DO J=1,NFUNCT
145.AND. IF(IRHO/=0 IRHO==NPC(J)) THEN
146 IRHO=J
147 EXIT
148 ENDIF
149 ENDDO
150 DO J=1,NFUNCT
151.AND. IF(IENER/=0 IENER==NPC(J)) THEN
152 IENER=J
153 EXIT
154 ENDIF
155 ENDDO
156 EBCS%title = TITR
157 EBCS%ipres = IPRES
158 EBCS%irho = IRHO
159 EBCS%iener = IENER
160 EBCS%c = C
161 EBCS%pres = PRES
162 EBCS%rho = RHO
163 EBCS%lcar = LCAR
164 EBCS%r1 = R1
165 EBCS%r2 = R2
166 EBCS%ener = ENER
167
168 IF (MULTI_FVM%IS_USED) THEN
169 CALL ANCMSG(MSGID = 1602, MSGTYPE = MSGERROR, ANMODE = ANINFO,
170 . I1 = ID, C1 = TRIM(TITR), C2 = "NOT COMPATIBLE WITH LAW 151")
171 ENDIF
172C-----------
173 RETURN
174C-----------
175
176 1003 FORMAT( //'outlet valve ebcs number . . . . . . . :',I8,1X,A)
177 1101 FORMAT(
178 . ' on surface . . . . . . . . . . . . . . . ',I8,/,
179 . ' number of segments found. . . . . . . . . ',I8,/,
180 . ' speed of sound . . . . . . . . . . . . . ',E16.6,/,
181 . ' imposed pressure . . . . . . . . . . . . ',E16.6,/,
182 . ' pressure scaling FUNCTION . . . . . . . . ',I8,/,
183 . ' imposed density . . . . . . . . . . . . . ',E16.6,/,
184 . ' density scaling function . . . . . . . . ',I8,/,
185 . ' imposed energy . . . . . . . . . . . . . ',E16.6,/,
186 . ' energy scaling function . . . . . . . . . ',I8,/,
187 . ' characteristic length . . . . . . . . . . ',E16.6,/,
188 . ' linear resistance . . . . . . . . . . . . ',E16.6,/,
189 . ' quadratic resistance . . . . . . . . . . ',E16.6,/)
190
#define my_real
Definition cppsort.cpp:32
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