45
46
47
51 USE intbuf_fric_mod
56 USE reader_old_mod , ONLY : irec
57
58
59
60#include "implicit_f.inc"
61
62
63
64#include "com04_c.inc"
65#include "units_c.inc"
66#include "scr17_c.inc"
67
68
69
70 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
71 INTEGER NOM_OPT(LNOPT1,*)
72 INTEGER IFLAG ,NSETFRICTOT ,COEFSLEN ,IORTHFRICMAX ,NGRPF ,LENG ,NSETMAX
73 INTEGER IPART(LIPART1,*) ,TAGPRT_FRIC(*),
74 . TABCOUPLEPARTS_FRIC_TMP(NINTERFRIC,*),IFRICORTH_TMP(NINTERFRIC,*),
75 . LENGRPF
76
77 my_real tabcoef_fric_tmp(ninterfric,*)
78
79 TYPE(INTBUF_FRIC_STRUCT_) INTBUF_FRIC_TAB(*)
80 TYPE (), DIMENSION(*),INTENT(IN) :: LSUBMODEL
81
82 TYPE (GROUP_) , DIMENSION(NGRPART) :: IGRPART
83
84
85
86 INTEGER NIF ,NIN , NSET ,NGRPF0 ,NOINTF ,SUB_ID ,UID ,IFLAGUNIT ,J
87 CHARACTER(LEN=NCHARTITLE) :: TITR
88
89
90
91
92
93 nif=0
94
95
96
97 IF(iflag==1) WRITE(iout,1000)
98
99
100
101
102
104
105
106
107 DO nin=1,ninterfric
108
109
110
111
113 . option_id = nointf,
114 . unit_id = uid,
115 . submodel_id = sub_id,
116 . option_titr = titr)
117
118
119
120 iflagunit = 0
121 DO j=1,unitab%NUNITS
122 IF (unitab%UNIT_ID(j) == uid) THEN
123 iflagunit = 1
124 EXIT
125 ENDIF
126 ENDDO
127 IF (uid/=0.AND.iflagunit==0) THEN
128 CALL ancmsg(msgid=659,anmode=aninfo,msgtype=msgerror,
129 . i2=uid,i1=nointf,c1='FRITION',
130 . c2='FRICTION',
131 . c3=titr)
132 ENDIF
133
134
135
136
137
138 nif=nif+1
139
140 nset = 0
141 ngrpf0 = ngrpf
142
144 1 nif ,nom_opt ,titr ,unitab ,igrpart ,
145 2 ipart ,nset ,tagprt_fric ,tabcoupleparts_fric_tmp,tabcoef_fric_tmp,
146 3 intbuf_fric_tab(nif)%FRICMOD,intbuf_fric_tab(nif)%IFFILTER ,
147 . intbuf_fric_tab(nif)%XFILTR_FRIC,intbuf_fric_tab(nif)%FRICFORM ,
148 4 iflag ,intbuf_fric_tab(nif)%IORTHFRIC,ifricorth_tmp ,ngrpf ,
149 5 lengrpf ,leng ,nointf , lsubmodel )
150
151 IF(iflag == 0) THEN
152 nset = ngrpf - ngrpf0
153 nset = nset * nset
154 nsetfrictot = nsetfrictot + nset
155 nsetmax =
max(nsetmax,nset)
156 intbuf_fric_tab(nif)%NSETPRTS = nset
157 iorthfricmax =
max(iorthfricmax,intbuf_fric_tab(nif)%IORTHFRIC)
158 ELSE
159 nsetfrictot = nsetfrictot + nset
160 intbuf_fric_tab(nif)%NSETPRTS = nset
161 nsetmax =
max(nsetmax,nset)
162 iorthfricmax =
max(iorthfricmax,intbuf_fric_tab(nif)%IORTHFRIC)
163 ENDIF
164 irec=irec+1
165
166 ENDDO
167
168
169 RETURN
170
171 1000 FORMAT( /1x,' FRICTION INTERFACES ' /
172 . 1x,' -------------------- '// )
173
subroutine hm_option_start(entity_type)
subroutine hm_read_friction(nif, nom_opt, titr, unitab, igrpart, ipart, nset, tagprt_fric, tabcoupleparts_fric_tmp, tabcoef_fric_tmp, mfrot, ifq, xfiltr, fricform, iflag, orthfric, ifricorth_tmp, ngrpf, lengrpf, leng, nointf, lsubmodel)
integer, parameter nchartitle
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)