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

Go to the source code of this file.

Functions/Subroutines

subroutine hm_read_inter_type01 (ipari, stfac, frigap, igrsurf, lsubmodel, nsurf, noint, npari, nparir)

Function/Subroutine Documentation

◆ hm_read_inter_type01()

subroutine hm_read_inter_type01 ( integer, dimension(npari), intent(inout) ipari,
intent(inout) stfac,
dimension(nparir), intent(inout) frigap,
type (surf_), dimension(nsurf), intent(in), target igrsurf,
type(submodel_data), dimension(nsubmod), intent(in) lsubmodel,
integer, intent(in) nsurf,
integer, intent(in) noint,
integer, intent(in) npari,
integer, intent(in) nparir )
Parameters
[in]nparirarray sizes IPARI and FRIGAP
[in]nsurfnumber of surfaces : array size for IGRSURF
[in]nointinterface identifier
[in,out]ipariinterface buffer (integer)
[in]lsubmodelSUBMODEL data structure
[in]igrsurfsurface sata structure
[in]igrsurfinterface parameters

Definition at line 34 of file hm_read_inter_type01.F.

35C-----------------------------------------------
36C D e s c r i p t i o n
37C-----------------------------------------------
38 ! Reader for interface type 1 (/INTER/TYPE1)
39 ! FSI COUPLING INTERFACE : ALE (secondary side) versus LAGRANGE (main side)
40C-----------------------------------------------
41C M o d u l e s
42C-----------------------------------------------
43 USE message_mod
44 USE groupdef_mod , ONLY : surf_
47C-----------------------------------------------
48C I m p l i c i t T y p e s
49C-----------------------------------------------
50#include "implicit_f.inc"
51C-----------------------------------------------
52C D u m m y A r g u m e n t s
53C-----------------------------------------------
54 INTEGER,INTENT(IN) :: NPARI, NPARIR !< array sizes IPARI and FRIGAP
55 INTEGER,INTENT(IN) :: NSURF !< number of surfaces : array size for IGRSURF
56 INTEGER,INTENT(IN) :: NOINT !< interface identifier
57 INTEGER,INTENT(INOUT) :: IPARI(NPARI) !< interface buffer (integer)
58 my_real,INTENT(INOUT) :: frigap(nparir) !< interface buffer (real)
59 my_real,INTENT(INOUT) :: stfac !< stiffness value or stiffness factor
60 TYPE(SUBMODEL_DATA),INTENT(IN),DIMENSION(NSUBMOD) :: LSUBMODEL !< SUBMODEL data structure
61 TYPE (SURF_),INTENT(IN),TARGET,DIMENSION(NSURF) :: IGRSURF !< surface sata structure
62C-----------------------------------------------
63C C o m m o n B l o c k s
64C-----------------------------------------------
65#include "units_c.inc"
66C-----------------------------------------------
67C L o c a l V a r i a b l e s
68C-----------------------------------------------
69 my_real fric,gap,startt,stopt !< interface parameters
70 INTEGER ISU1,ISU2 !< surface identifiers
71 INTEGER I,J,L, NTYP,IS1,IS2,IGSTI,ILEV,IVOID
72 INTEGER, DIMENSION(:), POINTER :: INGR2USR
73 LOGICAL :: IS_AVAILABLE
74 CHARACTER(len=nchartitle) :: MSGTITL
75C-----------------------------------------------
76C E x t e r n a l F u n c t i o n s
77C-----------------------------------------------
78 INTEGER, EXTERNAL :: NGR2USR
79C-----------------------------------------------
80
81 ! Initializations
82 is1=0
83 is2=0
84 igsti=0
85 ilev=0
86
87 fric=zero
88 gap=zero
89 startt=zero
90 stopt=ep20
91
92 ntyp=1
93 ipari(15)=noint
94 ipari(7)=ntyp
95
96 IF(stfac == zero) stfac = one_fifth
97
98C------------------------------------------------------------
99C Card1 : surface identifiers
100C------------------------------------------------------------
101
102 CALL hm_get_intv('surf_IDA', isu1, is_available, lsubmodel)
103 CALL hm_get_intv('surf_IDL', isu2, is_available, lsubmodel)
104 !--- CHECKS
105 is1=1
106 is2=1
107 ingr2usr => igrsurf(1:nsurf)%ID
108 isu1=ngr2usr(isu1,ingr2usr,nsurf)
109 isu2=ngr2usr(isu2,ingr2usr,nsurf)
110
111 !---Storage in data structure
112 ipari(45)=isu1
113 ipari(46)=isu2
114 ipari(13)=is1*10+is2
115 ipari(20)=ilev
116 frigap(3)=startt
117 frigap(11)=stopt
118C
119C------------------------------------------------------------
120C PRINTOUT
121C------------------------------------------------------------
122C
123 WRITE(iout,1501)
124
125C--------------------------------------------------------------
126 IF(is1==0)THEN
127 WRITE(iout,'(6X,A)')'NO SECONDARY SURFACE INPUT (ALE)'
128 ELSEIF(is1==1)THEN
129 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS (ALE)'
130 ELSEIF(is1==2)THEN
131 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY NODES (ALE)'
132 ELSEIF(is1==3)THEN
133 WRITE(iout,'(6X,A)')'SECONDARY SURFACE INPUT BY SEGMENTS (ALE)'
134 ELSEIF(is1==4 )THEN
135 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY BRICKS (ALE)'
136 ELSEIF(is1==5 )THEN
137 WRITE(iout,'(6X,A)')'SECONDARY SIDE INPUT BY SOLID ELEMENTS (ALE)'
138 ENDIF
139 IF(is2==0)THEN
140 WRITE(iout,'(6X,A)')'NO MAIN SURFACE INPUT (LAGRANGE)'
141 ELSEIF(is2==1)THEN
142 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS (LAGRANGE)'
143 ELSEIF(is2==2)THEN
144 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY NODES (LAGRANGE)'
145 ELSEIF(is2==3)THEN
146 WRITE(iout,'(6X,A)')'MAIN SURFACE INPUT BY SEGMENTS (LAGRANGE)'
147 ELSEIF(is2==4)THEN
148 WRITE(iout,'(6X,A)')'MAIN SURFACE REFERS TO A HYPER-ELLIPSOIDAL SURFACE'
149 ENDIF
150C
151C--------------------------------------------------------------
152 1000 FORMAT(/1x,' INTERFACE NUMBER :',i10,1x,a)
153C------------
154 RETURN
155
156 1501 FORMAT(//
157 . ' TYPE==1 ALE(SECONDARY)/LAGRANGE(MAIN) ' //)
158
#define my_real
Definition cppsort.cpp:32
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
integer, parameter nchartitle
integer, parameter ncharkey
integer, parameter ncharfield
integer nsubmod
integer function ngr2usr(iu, igr, ngr)
Definition nintrr.F:325