49
50
51
57 USE matparam_def_mod
58 use element_mod , only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
59
60
61
62#include "implicit_f.inc"
63
64
65
66#include "com01_c.inc"
67#include "com04_c.inc"
68#include "param_c.inc"
69#include "scry_c.inc"
70#include "scr16_c.inc"
71#include "units_c.inc"
72
73
74
75 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
76 INTEGER IXS(NIXS,*), IXQ(NIXQ,*),IXC(NIXC,*),
77 . IGEO(NPROPGI,*), IXT(NIXT,*),IXP(NIXP,*), IXR(NIXR,*),
78 . IXTG(NIXTG,*),INDEX(*),ITRI(*),KXSP(*),IPM(NPROPMI,*),
79 . KSYSUSR(*),PTSHEL(*),PTSH3N(*),PTSOL(*),PTQUAD(*),PTSPH(*),
80 . IDRAPE(NPLYMAX,*),PTSPRI(*),PTBEAM(*),PTTRUSS(*)
81 INTEGER NSIGI,NSIGSH,NSIGS, NSIGSPH, NSIGRS,
82 . NUMEL,ISOLNODD00(*),NSIGBEAM,NSIGTRUSS,(*),
83 . STRAGLOB(*),ORTHOGLOB(*),ISIGSH,IYLDINI,KSIGSH3,FAIL_INI(5),
84 . IUSOLYLD,IUSER,VARMAX
85 INTEGER, DIMENSION(NPARG,NGROUP) ,INTENT(IN):: IPARG
87 . geo(*),pm(npropm,*),rtrans(ntransf,*),
88 . sigi(nsigs,*),sigsh(
max(1,nsigsh),*),sigtruss(nsigtruss,*),
89 . sigsp(nsigi,*),sigsph(nsigsph,*),sigrs(nsigrs,*),sigbeam(nsigbeam,*)
90
91 TYPE(SUBMODEL_DATA) LSUBMODEL(*)
92 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
93
94 TYPE(MAPPING_STRUCT_) :: MAP_TABLES
95 TYPE (STACK_PLY) :: STACK
96 INTEGER, INTENT(IN) :: IWORKSH(3,NUMELC + NUMELTG)
97 TYPE (MATPARAM_STRUCT_) ,DIMENSION(NUMMAT) ,INTENT(INOUT) :: MAT_PARAM
98 INTEGER, INTENT(IN) :: NUMSPH
99 INTEGER, INTENT(IN) :: NISP
100
101
102
103 INTEGER I, J, N, stat
104 INTEGER NIBRICK, NIQUAD, NISHELL, NISH3N, NISPRING, NIBEAM, NITRUSS, NISPHCEL
105 INTEGER, DIMENSION(:), ALLOCATABLE :: ID_SIGSH
106 INTEGER, DIMENSION(:), ALLOCATABLE :: ID_SOLID_SIGI
107 INTEGER, DIMENSION(:), ALLOCATABLE :: ID_QUAD_SIGI
108 INTEGER, DIMENSION(:), ALLOCATABLE :: ID_SIGSPRI
109 INTEGER, DIMENSION(:), ALLOCATABLE :: ID_SIGBEAM
110 INTEGER, DIMENSION(:), ALLOCATABLE :: ID_SIGTRUSS
111 INTEGER, DIMENSION(:), ALLOCATABLE :: ID_SIGSPH
112 INTEGER, DIMENSION(:), ALLOCATABLE :: WORK
113 LOGICAL IS_STATE
114
115
116
117
118
119 iuser = 0
120 iyldini = 0
121 iusolyld = 0
122 fail_ini(1:5) = 0
123 isigsh =0
124 ksigsh3 = 0
125 iortshel = 0
126 inispri = 0
127 varmax =
max(nsigsh,nsigi,nsigi,nsigtruss,nsigbeam,nsigrs)
128 is_state = .false.
129
130 ALLOCATE (id_sigsh(numshel+numsh3n) ,stat=stat)
131 ALLOCATE (id_solid_sigi(numsol) ,stat=stat)
132 ALLOCATE (id_quad_sigi(numquad) ,stat=stat)
133 ALLOCATE (id_sigspri(numspri) ,stat=stat)
134 ALLOCATE (id_sigbeam(numbeam) ,stat=stat)
135 ALLOCATE (id_sigtruss(numtrus) ,stat=stat)
136 ALLOCATE (id_sigsph(numsph) ,stat=stat)
137 ALLOCATE (work(70000) ,stat=stat)
138
139 IF(numshel+numsh3n > 0) id_sigsh(1:numshel+numsh3n) = 0
140 IF(numsol > 0 )id_solid_sigi(1:numsol) = 0
141 IF(numquad > 0 )id_quad_sigi(1:numquad) = 0
142 IF(numspri > 0 )id_sigspri(1:numspri) = 0
143 IF(numbeam > 0 )id_sigbeam(1:numbeam) = 0
144 IF(numtrus > 0 )id_sigtruss(1:numtrus) = 0
145 work(1:70000) = 0
146
147 IF (abs(isigi) == 3.OR.abs(isigi) == 4.OR.abs(isigi) == 5) THEN
148 DO i=1,numshel+numsh3n
149 DO j=1,nsigsh
150 sigsh(j,i)=zero
151 ENDDO
152 ENDDO
153 ENDIF
154
155
156
157
158
159
160 IF (isigi == 1.OR.isigi == 2) THEN
161
162
163
164 IF (ioutp_fmt == 2) THEN
165 DO i=1,numels+numelq
166 READ(iin4,'(I8,3F16.0/8X,3F16.0)') n,(sigi(j,i),j=1,6)
167 sigi(7,i) = n
168 ENDDO
169 ELSE
170 DO i=1,numels+numelq
171 READ(iin4,'(I10,3F20.0/8X,3F20.0)') n,(sigi(j,i),j=1,6)
172 sigi(7,i) = n
173 ENDDO
174 ENDIF
175
176 ELSEIF (isigi == 3.OR.isigi == 4.OR.isigi == 5) THEN
177
178
179
181 1 nsigsh ,nsigs ,nsigsph ,nsigrs ,nsigi ,
182 2 sigsh ,sigi ,sigsph ,sigrs ,sigsp ,
183 3 isigsh ,iuser ,
184 4 id_sigsh , id_solid_sigi, id_quad_sigi )
185
186 ENDIF
187
188
189
190
191 IF (isigi == -3.OR.isigi == -4.OR.isigi == -5) is_state = .true
192
193 IF (isigi == -3.OR.isigi == -4.OR.isigi == -5) THEN
194 isigi = -isigi
195
196
197! 2 ixr ,geo ,pm ,ixtg ,index ,
198
199
200
201
202
203
204
205
206
208 1 ixs ,ixq ,ixc ,ixt ,ixp ,
209 2 ixr ,geo ,pm ,ixtg ,index ,
210 3 itri ,nsigsh ,igeo ,
211 4 ipm ,nsigs ,nsigsph ,ksysusr ,nsigrs ,
212 5 unitab ,isolnodd00 ,lsubmodel ,rtrans ,idrape ,
213 6 nsigi ,nsigbeam ,nsigtruss ,
214 7 sigi ,sigsh ,sigsp ,sigsph ,sigrs ,
215 8 sigbeam ,sigtruss ,strsglob ,straglob ,orthoglob ,
216 9 isigsh ,iyldini ,fail_ini ,iusolyld ,iuser ,
217 a id_sigsh ,id_solid_sigi,id_quad_sigi ,id_sigspri ,id_sigbeam,
218 b id_sigtruss,work ,igrbric ,nibrick ,niquad ,
219 c nishell ,nish3n ,nispring ,nibeam ,nitruss ,
220 d map_tables ,varmax ,iparg ,ptshel ,ptsh3n
221 e stack ,iworksh ,iout ,mat_param ,nisphcel ,
222 f numsph ,nisp ,kxsp ,id_sigsph)
223 ENDIF
224
226 1 ixs ,ixq ,ixc ,ixt ,ixp ,
227 2 ixr ,kxsp ,ixtg ,index ,itri ,
228 3 nsigsh ,nsigs ,nsigsph ,ksysusr ,ksigsh3 ,
229 4 nsigrs ,nsigi ,nsigbeam ,nsigtruss ,
230 5 ptshel ,ptsh3n ,ptsol ,ptquad ,ptsph ,
231 6 ptspri ,ptbeam ,pttruss ,sigi ,sigsh ,
232 7 sigsp ,sigsph ,sigrs ,sigbeam ,sigtruss ,
233 8 id_sigsh ,id_solid_sigi,id_quad_sigi ,id_sigspri ,id_sigbeam ,
234 9 id_sigtruss,work ,id_sigsph ,is_state)
235
236
237 IF(numsol > 0) DEALLOCATE (id_solid_sigi)
238 IF(numquad > 0 )DEALLOCATE (id_quad_sigi)
239 IF(numshel+numsh3n > 0 )DEALLOCATE (id_sigsh)
240 IF(numspri > 0 )DEALLOCATE (id_sigspri)
241 IF(numbeam > 0 )DEALLOCATE (id_sigbeam)
242 IF(numtrus > 0 )DEALLOCATE (id_sigtruss)
243 IF(numsph > 0 )DEALLOCATE (id_sigsph)
244 DEALLOCATE (work)
245
246 RETURN
subroutine hm_read_inistate_d00(ixs, ixq, ixc, ixt, ixp, ixr, geo, pm, ixtg, index, itri, nsigsh, igeo, ipm, nsigs, nsigsph, ksysusr, nsigrs, unitab, isolnodd00, lsubmodel, rtrans, idrape, nsigi, nsigbeam, nsigtruss, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, strsglob, straglob, orthoglob, isigsh, iyldini, fail_ini, iusolyld, iuser, id_sigsh, id_solid_sigi, id_quad_sigi, id_sigspri, id_sigbeam, id_sigtruss, work, igrbric, nibrick, niquad, nishell, nish3n, nispring, nibeam, nitruss, map_tables, varmax, iparg, ptshel, ptsh3n, stack, iworksh, iout, mat_param, nisphcel, numsph, nisp, kxsp, id_sigsph)
subroutine lec_inistate_tri(ixs, ixq, ixc, ixt, ixp, ixr, kxsp, ixtg, index, itri, nsigsh, nsigs, nsigsph, ksysusr, ksigsh3, nsigrs, nsigi, nsigbeam, nsigtruss, ptshel, ptsh3n, ptsol, ptquad, ptsph, ptspri, ptbeam, pttruss, sigi, sigsh, sigsp, sigsph, sigrs, sigbeam, sigtruss, id_sigsh, id_solid_sigi, id_quad_sigi, id_sigspri, id_sigbeam, id_sigtruss, work, id_sigsphcel, is_state)
subroutine lec_inistate_yfile(nsigsh, nsigs, nsigsph, nsigrs, nsigi, sigsh, sigi, sigsph, sigrs, sigsp, isigsh, iuser, id_sigsh, id_solid_sigi, id_quad_sigi)