39
45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "units_c.inc"
53#include "param_c.inc"
54#include "com04_c.inc"
55#include "sphcom.inc"
56#include "tablen_c.inc"
57
58
59
60 TYPE (UNIT_TYPE_),INTENT(IN) ::UNITAB
61 INTEGER IGEO(NPROPGI),ISKN(LISKN,*),IG,IGTYP
62 INTEGER, INTENT(IN) :: SUB_INDEX
63 TYPE(PROP_TAG_) , DIMENSION(0:MAXPROP) :: PROP_TAG
64
66 . geo(npropg)
67 TYPE(SUBMODEL_DATA),INTENT(IN)::LSUBMODEL(*)
68 CHARACTER(LEN=NCHARTITLE)::TITR
69
70
71
72 INTEGER ITYPE,ID_SKEW,ID_SENS,ISFLAG,K
73
75 . inertia,vol_air,pun
76 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
77
78
79
80 DATA pun/0.1/
81
82
83 is_encrypted = .false.
84 is_available = .false.
85
86 igeo(1)=ig
87 igeo(11)=igtyp
88 geo(12) =igtyp+pun
89
90
91
92
94
95
96
97 CALL hm_get_intv(
'Imass',itype,is_available,lsubmodel)
98 CALL hm_get_intv(
'SKEW_CSID',id_skew,is_available,lsubmodel)
99 IF(id_skew == 0 .AND. sub_index /= 0 ) id_skew = lsubmodel(sub_index)%SKEW
100 CALL hm_get_intv(
'ISENSOR',id_sens,is_available,lsubmodel)
101 CALL hm_get_intv('isflag
',ISFLAG,IS_AVAILABLE,LSUBMODEL)
102
103
104
105
106 IF (ITYPE==0) ITYPE = 2
107
108 CALL HM_GET_FLOATV('inertia',INERTIA,IS_AVAILABLE,LSUBMODEL,UNITAB)
109 IF (ITYPE == 1) THEN
110 CALL HM_GET_FLOATV('area',VOL_AIR,IS_AVAILABLE,LSUBMODEL,UNITAB)
111 ELSE
112 CALL HM_GET_FLOATV('volume',VOL_AIR,IS_AVAILABLE,LSUBMODEL,UNITAB)
113 ENDIF
114
115!----------------
116! verification
117! -----------
118
119 DO K = 0,NUMSKW+MIN(1,NSPCOND)*NUMSPH+NSUBMOD
120 IF (ID_SKEW == ISKN(4,K+1)) THEN
121 ID_SKEW = K+1
122 GO TO 100
123 ENDIF
124 ENDDO
125 CALL ANCMSG(MSGID=137,ANMODE=ANINFO,MSGTYPE=MSGERROR,
126 . C1='property',
127 . C2='property',
128 . I1=IGEO(1),I2=ID_SKEW,C3=TITR)
129100 CONTINUE
130
131 IF (ISFLAG == 1) ID_SENS=-ID_SENS
132
133 IGEO(2)= ID_SKEW
134 IGEO(3)= ID_SENS
135 IGEO(4)= ITYPE
136 IGEO(5)= ISFLAG
137
138 GEO(1) = VOL_AIR
139 GEO(2) = INERTIA
140
141 PROP_TAG(IGTYP)%G_EINT = 1
142 PROP_TAG(IGTYP)%G_FOR = 3
143 PROP_TAG(IGTYP)%G_MOM = 3
144 PROP_TAG(IGTYP)%G_LENGTH = 3
145 PROP_TAG(IGTYP)%G_FOREP = 3
146 PROP_TAG(IGTYP)%G_MOMEP = 3
147 PROP_TAG(IGTYP)%G_LENGTH_ERR = 3
148 PROP_TAG(IGTYP)%G_SKEW = 3
149 PROP_TAG(IGTYP)%G_SKEW_ERR = 3
150 PROP_TAG(IGTYP)%G_E6 = 6
151 PROP_TAG(IGTYP)%G_DEFINI = 6
152 PROP_TAG(IGTYP)%G_FORINI = 6
153 PROP_TAG(IGTYP)%G_RUPTCRIT = 1
154
155 IF(IS_ENCRYPTED)THEN
156 WRITE(IOUT,1000)IG
157 1000 FORMAT(
158 & 5X,'spring property set'/,
159 & 5X,'-------------------'/,
160 & 5X,'property set number . . . . . . . . . .=',I10/,
161 & 5X,'confidential data'//)
162 ELSE
163 IF(ITYPE == 1) THEN
164 WRITE(IOUT,1700)IG,VOL_AIR,INERTIA,ISKN(4,ID_SKEW),ABS(ID_SENS),ISFLAG
165 ELSE
166 WRITE(IOUT,1800)IG,VOL_AIR,INERTIA,ISKN(4,ID_SKEW),ABS(ID_SENS),ISFLAG
167 ENDIF
168 ENDIF
169
170 RETURN
171
172 1700 FORMAT(
173 & 5X,'spring property set(beam type)'/,
174 & 5X,'property set number . . . . . . . . . .=',I10/,
175 & 5X,'spring
area . . . . . . . . . . . . . .=
',1PG20.13/,
176 & 5X,'spring inertia. . . . . . . . . . . . .=',1PG20.13/,
177 & 5X,'skew frame
id . . . . . . . . . . . . .=
',I10/,
178 & 5X,'sensor number(0:not used). . . . . . .=',I10/,
179 & 5X,'sensor flag(0:activ 1:deact 2:both). .=',I10/)
180 1800 FORMAT(
181 & 5X,'spring property set(beam type)'/,
182 & 5X,'property set number . . . . . . . . . .=',I10/,
183 & 5X,'spring volume . . . . . . . . . . . . .=',1PG20.13/,
184 & 5X,'spring inertia. . . . . . . . . . . . .=',1PG20.13/,
185 & 5X,'skew frame
id . . . . . . . . . . . . .=
',I10/,
186 & 5X,'sensor number (0:not used). . . . . . .=',I10/,
187 & 5X,'sensor flag(0:activ 1:deact 2:both). .=',I10/)
188
189 RETURN
subroutine hm_get_intv(name, ival, is_available, lsubmodel)
subroutine hm_option_is_encrypted(is_encrypted)
subroutine area(d1, x, x2, y, y2, eint, stif0)
integer, parameter nchartitle