41 . ID,PROP_TAG,TITR,LSUBMODEL,IUNIT)
51#include "implicit_f.inc"
55#include "tablen_c.inc"
70 TYPE (UNIT_TYPE_),
INTENT(IN) ::UNITAB
71 INTEGER IOUT,NUVAR,IGTYP,IUNIT
74 TYPE(
prop_tag_) ,
DIMENSION(0:MAXPROP) :: PROP_TAG
75 CHARACTER(LEN=NCHARTITLE) :: TITR
80 INTEGER SENSOR,ZEROI,IERROR,JTYP
82 my_real xtyp,fac_m,fac_l,fac_t,fac_mm,fac_ff,fac_kt
85 my_real crxx,cryy,crzz,crrx,crry,crrz
86 my_real sdxmi,sdxma,sdymi,sdyma,sdzmi,sdzma
87 my_real saxmi,saxma,saymi,sayma,sazmi,sazma
88 my_real kfx,kfy,kfz,kfrx,kfry,kfrz
89 my_real fmx,fmy,fmz,fmrx,fmry,fmrz,xidsk1,xidsk2
90 my_real fcombx,fcomby,fcombz,fcombrx,fcombry,fcombrz
91 INTEGER ,IFUN_YY,IFUN_ZZ,IFUN_RX,IFUN_RY,IFUN_RZ
92 INTEGER IFUN_CXX,IFUN_CYY,IFUN_CZZ,IFUN_CRX,IFUN_CRY,IFUN_CRZ
93 INTEGER IFUN_FMX,IFUN_FMY,IFUN_FMZ,IFUN_FMRX,IFUN_FMRY,IFUN_FMRZ
94 INTEGER RED,IDSK1,IDSK2,COMB_ERROR
96 LOGICAL IS_AVAILABLE, IS_ENCRYPTED
100 INTEGER SET_U_PNU,SET_U_GEO,KFUNC
104 is_encrypted = .false.
105 is_available = .false.
114 CALL hm_get_intv(
'type',jtyp,is_available,lsubmodel)
115 CALL hm_get_intv(
'ISENSOR',sensor,is_available,lsubmodel)
116 CALL hm_get_intv(
'SKEW1',idsk1,is_available,lsubmodel)
117 CALL hm_get_intv(
'SKEW2',idsk2,is_available,lsubmodel)
122 CALL hm_get_floatv(
'SCALE',scf,is_available,lsubmodel,unitab)
126 IF(.NOT. is_encrypted)
THEN
136 fac_m = unitab%FAC_M(iunit)
137 fac_l = unitab%FAC_L(iunit)
138 fac_t = unitab%FAC_T(iunit)
140 fac_ff = fac_m * fac_l / fac_t**2
141 fac_mm = fac_m * fac_l**2 / fac_t**2
142 fac_kt = fac_m / fac_t**2
148 IF (cr<zero.OR.cr>1.)
THEN
151 . anmode=aninfo_blind_1,
155 IF (cr==zero) cr = fiveem2
159 . anmode=aninfo_blind_1,
249 IF(.NOT. is_encrypted)
THEN
251 IF ((idsk1==0).AND.(idsk2==0))
THEN
253 WRITE(iout,1100) scf,cr,sensor
255 WRITE(iout,1000) knn,scf,cr,sensor
259 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
261 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
267 CALL lec_dof_jnt(iout,is_encrypted,unitab,krx,crx,saxmi,
268 . saxma,fcombrx,kfrx,fmrx,ifun_crx,ifun_rx,4,
269 . fac_mm,ifun_fmrx,red,id,titr,
271 CALL lec_dof_jnt(iout,is_encrypted,unitab,kry,cry,saymi,
272 . sayma,fcombry,kfry,fmry
273 . fac_mm,ifun_fmry,red,id,titr,
275 CALL lec_dof_jnt(iout,is_encrypted,unitab,krz,crz,sazmi,
276 . sazma,fcombrz,kfrz,fmrz,ifun_crz,ifun_rz,6,
277 . fac_mm,ifun_fmrz,red,id,titr,
280 IF ((red/=0).AND.(red/=3))
THEN
283 . anmode=aninfo_blind_2,
330 ELSEIF (jtyp==2)
THEN
334 IF(.NOT. is_encrypted)
THEN
336 IF ((idsk1==0).AND.(idsk2==0))
THEN
338 WRITE(iout,1100) scf,cr,sensor
340 WRITE(iout,1000) knn,scf,cr,sensor
344 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
346 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
351 CALL lec_dof_jnt(iout,is_encrypted,unitab,krx,crx,saxmi,
352 . saxma,fcombrx,kfrx,fmrx,ifun_crx,ifun_rx,4,
353 . fac_mm,ifun_fmrx,red,id,titr,
415 ELSEIF (jtyp==3)
THEN
419 IF(.NOT. is_encrypted)
THEN
421 IF ((idsk1==0).AND.(idsk2==0))
THEN
423 WRITE(iout,1100) scf,cr,sensor
425 WRITE(iout,1000) knn,scf,cr,sensor
429 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
431 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
437 CALL lec_dof_jnt(iout,is_encrypted,unitab,kxx,cxx,sdxmi,
438 . sdxma,fcombx,kfx,fmx,ifun_cxx,ifun_xx,1,
439 . fac_ff,ifun_fmx,red,id,titr,
441 CALL lec_dof_jnt(iout,is_encrypted,unitab,krx,crx,saxmi,
442 . saxma,fcombrx,kfrx,fmrx,ifun_crx,ifun_rx,4,
443 . fac_mm,ifun_fmrx,red,id,titr,
446 IF ((red/=0).AND.(red/=2))
THEN
449 . anmode=aninfo_blind_2,
506 ELSEIF (jtyp==4)
THEN
510 IF(.NOT. is_encrypted)
THEN
512 IF ((idsk1==0).AND.(idsk2==0))
THEN
514 WRITE(iout,1100) scf,cr,sensor
516 WRITE(iout,1000) knn,scf,cr,sensor
520 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
522 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
528 CALL lec_dof_jnt(iout,is_encrypted,unitab,kyy,cyy,sdymi,
529 . sdyma,fcomby,kfy,fmy,ifun_cyy,ifun_yy,2,
530 . fac_ff,ifun_fmy,red,id,titr,
532 CALL lec_dof_jnt(iout,is_encrypted,unitab,kzz,czz,sdzmi,
533 . sdzma,fcombz,kfz,fmz,ifun_czz,ifun_zz,3,
534 . fac_ff,ifun_fmz,red,id,titr,
536 CALL lec_dof_jnt(iout,is_encrypted,unitab,krx,crx,saxmi,
537 . saxma,fcombrx,kfrx,fmrx,ifun_crx,ifun_rx,4,
538 . fac_mm,ifun_fmrx,red,id,titr,
541 IF ((red/=0).AND.(red/=3))
THEN
544 . anmode=aninfo_blind_2,
592 ELSEIF (jtyp==5)
THEN
596 IF(.NOT. is_encrypted)
THEN
598 IF ((idsk1==0).AND.(idsk2==0))
THEN
600 WRITE(iout,1100) scf,cr,sensor
602 WRITE(iout,1000) knn,scf,cr,sensor
606 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
608 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
614 CALL lec_dof_jnt(iout,is_encrypted,unitab,kry,cry,saymi,
615 . sayma,fcombry,kfry,fmry,ifun_cry,ifun_ry,5,
616 . fac_mm,ifun_fmry,red,id,titr,
618 CALL lec_dof_jnt(iout,is_encrypted,unitab,krz,crz,sazmi,
619 . sazma,fcombrz,kfrz,fmrz,ifun_crz,ifun_rz,6,
620 . fac_mm,ifun_fmrz,red,id,titr,
623 IF ((red/=0).AND.(red/=2))
THEN
626 . anmode=aninfo_blind_2,
683 ELSEIF (jtyp==6)
THEN
687 IF(.NOT. is_encrypted)
THEN
689 IF ((idsk1==0).AND.(idsk2==0))
THEN
691 WRITE(iout,1100) scf,cr,sensor
693 WRITE(iout,1000) knn,scf,cr,sensor
697 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
699 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
704 CALL lec_dof_jnt(iout,is_encrypted,unitab,kxx,cxx,sdxmi,
705 . sdxma,fcombx,kfx,fmx,ifun_cxx,ifun_xx,1,
706 . fac_ff,ifun_fmx,red,id,titr,
768 ELSEIF (jtyp==7)
THEN
772 IF(.NOT. is_encrypted)
THEN
774 IF ((idsk1==0).AND.(idsk2==0))
THEN
776 WRITE(iout,1100) scf,cr,sensor
778 WRITE(iout,1000) knn,scf,cr,sensor
782 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
784 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
790 CALL lec_dof_jnt(iout,is_encrypted,unitab,kyy,cyy,sdymi,
791 . sdyma,fcomby,kfy,fmy,ifun_cyy,ifun_yy,2,
792 . fac_ff,ifun_fmy,red,id,titr,
794 CALL lec_dof_jnt(iout,is_encrypted,unitab,kzz,czz,sdzmi,
795 . sdzma,fcombz,kfz,fmz,ifun_czz,ifun_zz,3,
796 . fac_ff,ifun_fmz,red,id,titr,
799 IF ((red/=0).AND.(red/=2))
THEN
802 . anmode=aninfo_blind_2,
859 ELSEIF (jtyp==8)
THEN
863 IF(.NOT. is_encrypted)
THEN
865 IF ((idsk1==0).AND.(idsk2==0))
THEN
867 WRITE(iout,1100) scf,cr,sensor
869 WRITE(iout,1000) knn,scf,cr,sensor
873 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
875 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
949 ELSEIF (jtyp==9)
THEN
953 IF(.NOT. is_encrypted)
THEN
955 IF ((idsk1==0).AND.(idsk2==0))
THEN
957 WRITE(iout,1100) scf,cr,sensor
959 WRITE(iout,1000) knn,scf,cr,sensor
963 WRITE(iout,1300) scf,cr,sensor,idsk1,idsk2
965 WRITE(iout,1200) knn,scf,cr,sensor,idsk1,idsk2
971 CALL lec_dof_jnt(iout,is_encrypted,unitab,kxx,cxx,sdxmi,
972 . sdxma,fcombx,kfx,fmx,ifun_cxx,ifun_xx,1,
973 . fac_ff,ifun_fmx,red,id,titr,
975 CALL lec_dof_jnt(iout,is_encrypted,unitab,kyy,cyy,sdymi,
976 . sdyma,fcomby,kfy,fmy,ifun_cyy,ifun_yy,2,
977 . fac_ff,ifun_fmy,red,id,titr,
979 CALL lec_dof_jnt(iout,is_encrypted,unitab,kzz,czz,sdzmi,
980 . sdzma,fcombz,kfz,fmz,ifun_czz,ifun_zz,3,
981 . fac_ff,ifun_fmz,red,id,titr,
983 CALL lec_dof_jnt(iout,is_encrypted,unitab,krx,crx,saxmi,
984 . saxma,fcombrx,kfrx,fmrx,ifun_crx,ifun_rx,4,
985 . fac_mm,ifun_fmrx,red,id,titr,
987 CALL lec_dof_jnt(iout,is_encrypted,unitab,kry,cry,saymi,
988 . sayma,fcombry,kfry,fmry,ifun_cry,ifun_ry,5,
989 . fac_mm,ifun_fmry,red,id,titr,
991 CALL lec_dof_jnt(iout,is_encrypted,unitab,krz,crz,sazmi,
992 . sazma,fcombrz,kfrz,fmrz,ifun_crz,ifun_rz,6,
993 . fac_mm,ifun_fmrz,red,id,titr,
996 IF ((red/=0).AND.(red/=6))
THEN
999 . anmode=aninfo_blind_2,
1010 . anmode=aninfo_blind_2,
1021 sumt = fcombx+fcomby+fcombz
1022 sumr = fcombrx+fcombry+fcombrz
1026 IF (sumt == one)
THEN
1029 . anmode=aninfo_blind_2,
1032 ELSEIF (sumt > one)
THEN
1033 alpha_plus = (fcombx*sdxma+fcomby*sdyma+fcombz*sdzma)/sumt
1034 alpha_moin = (fcombx*sdxmi+fcomby*sdymi+fcombz*sdzmi)/sumt
1035 IF ((fcombx>em20).AND.(abs(alpha_plus - sdxma)/
max(em20,abs(alpha_plus))>em10)) comb_error = 1
1036 IF ((fcomby>em20).AND.(abs(alpha_plus - sdyma)/
max(em20,abs(alpha_plus))>em10)) comb_error = 1
1037 IF ((fcombz>em20).AND.(abs(alpha_plus - sdzma)/
max(em20,abs(alpha_plus))>em10)) comb_error = 1
1038 IF ((fcombx>em20).AND.(abs(alpha_moin - sdxmi)/
max(em20,abs(alpha_moin))>em10)) comb_error = 1
1039 IF ((fcomby>em20).AND.(abs(alpha_moin - sdymi)/
max(em20,abs(alpha_moin))>em10)) comb_error = 1
1040 IF ((fcombz>em20).AND.(abs(alpha_moin - sdzmi)/
max(em20,abs(alpha_moin))>em10)) comb_error = 1
1045 IF (sumr == one)
THEN
1048 . anmode=aninfo_blind_2,
1051 ELSEIF (sumr > one)
THEN
1052 alpha_plus = (fcombrx*saxma+fcombry*sayma+fcombrz*sazma)/sumr
1053 alpha_moin = (fcombrx*saxmi+fcombry*saymi+fcombrz*sazmi)/sumr
1054 IF ((fcombrx>em20).AND.(abs(alpha_plus - saxma)/
max(em20,abs(alpha_plus))>em10)) comb_error = 1
1055 IF ((fcombry>em20).AND.(abs(alpha_plus - sayma)/
max(em20,abs(alpha_plus))>em10)) comb_error = 1
1056 IF ((fcombrz>em20).AND.(abs(alpha_plus - sazma)/
max(em20,abs(alpha_plus))>em10)) comb_error = 1
1057 IF ((fcombrx>em20).AND.(abs(alpha_moin - saxmi)/
max(em20,abs(alpha_moin
1058 IF ((fcombry>em20).AND.(abs(alpha_moin - saymi)/
max(em20,abs(alpha_moin))>em10)) comb_error = 1
1059 IF ((fcombrz>em20).AND.(abs(alpha_moin - sazmi)/
max(em20,abs(alpha_moin))>em10)) comb_error = 1
1062 IF (comb_error==1)
THEN
1065 . anmode=aninfo_blind_2,
1078 ierror = set_u_geo(1,xtyp)
1079 ierror = set_u_geo(2,sensr)
1080 ierror = set_u_geo(3,skewr)
1081 ierror = set_u_geo(4,kxx)
1082 ierror = set_u_geo(5,kyy)
1083 ierror = set_u_geo(6,kzz)
1084 ierror = set_u_geo(7,krx)
1085 ierror = set_u_geo(8,kry)
1086 ierror = set_u_geo(9,krz)
1087 ierror = set_u_geo(10,knn)
1088 ierror = set_u_geo(11,scf)
1090 ierror = set_u_geo(12,cr)
1091 ierror = set_u_geo(13,zero)
1092 ierror = set_u_geo(14,zero)
1093 ierror = set_u_geo(15,crxx)
1094 ierror = set_u_geo(16,cryy)
1095 ierror = set_u_geo(17,crzz)
1096 ierror = set_u_geo(18,crrx)
1097 ierror = set_u_geo(19,crry)
1098 ierror = set_u_geo(20,crrz)
1099 ierror = set_u_geo(21,cxx)
1100 ierror = set_u_geo(22,cyy)
1101 ierror = set_u_geo(23,czz)
1102 ierror = set_u_geo(24,crx)
1103 ierror = set_u_geo(25,cry)
1104 ierror = set_u_geo(26,crz)
1107 ierror = set_u_geo(27,fac_l)
1108 ierror = set_u_geo(28,fac_t)
1110 ierror = set_u_geo(29,sdxmi)
1111 ierror = set_u_geo(30,sdxma)
1112 ierror = set_u_geo(31,sdymi)
1113 ierror = set_u_geo(32,sdyma)
1114 ierror = set_u_geo(33,sdzmi)
1115 ierror = set_u_geo(34,sdzma)
1116 ierror = set_u_geo(35,saxmi)
1117 ierror = set_u_geo(36,saxma)
1118 ierror = set_u_geo(37,saymi)
1119 ierror = set_u_geo(38,sayma)
1120 ierror = set_u_geo(39,sazmi)
1121 ierror = set_u_geo(40,sazma)
1123 ierror = set_u_geo(41,kfx)
1124 ierror = set_u_geo(42,kfy)
1125 ierror = set_u_geo(43,kfz)
1126 ierror = set_u_geo(44,kfrx)
1127 ierror = set_u_geo(45,kfry)
1128 ierror = set_u_geo(46,kfrz)
1129 ierror = set_u_geo(47,fmx)
1130 ierror = set_u_geo(48,fmy)
1131 ierror = set_u_geo(49,fmz)
1132 ierror = set_u_geo(50,fmrx)
1133 ierror = set_u_geo(51,fmry)
1134 ierror = set_u_geo(52,fmrz)
1136 ierror = set_u_geo(53,xidsk1)
1137 ierror = set_u_geo(54,xidsk2)
1139 ierror = set_u_geo(55,fcombx)
1140 ierror = set_u_geo(56,fcomby)
1141 ierror = set_u_geo(57,fcombz)
1142 ierror = set_u_geo(58,fcombrx)
1143 ierror = set_u_geo(59,fcombry)
1144 ierror = set_u_geo(60,fcombrz)
1146 ierror = set_u_pnu(1,ifun_xx,kfunc)
1147 ierror = set_u_pnu(2,ifun_yy,kfunc)
1148 ierror = set_u_pnu(3,ifun_zz,kfunc)
1149 ierror = set_u_pnu(4,ifun_rx,kfunc)
1150 ierror = set_u_pnu(5,ifun_ry,kfunc)
1151 ierror = set_u_pnu(6,ifun_rz,kfunc)
1152 ierror = set_u_pnu(7,ifun_cxx,kfunc)
1153 ierror = set_u_pnu(8,ifun_cyy,kfunc)
1154 ierror = set_u_pnu(9,ifun_czz,kfunc)
1155 ierror = set_u_pnu(10,ifun_crx,kfunc)
1156 ierror = set_u_pnu(11,ifun_cry,kfunc)
1157 ierror = set_u_pnu(12,ifun_crz,kfunc)
1158 ierror = set_u_pnu(13,ifun_fmx,kfunc)
1159 ierror = set_u_pnu(14,ifun_fmy,kfunc)
1160 ierror = set_u_pnu(15,ifun_fmz,kfunc)
1161 ierror = set_u_pnu(16,ifun_fmrx,kfunc)
1162 ierror = set_u_pnu(17,ifun_fmry,kfunc)
1163 ierror = set_u_pnu(18,ifun_fmrz,kfunc)
1169 prop_tag(igtyp)%G_FOR = 3
1170 prop_tag(igtyp)%G_MOM = 3
1171 prop_tag(igtyp)%G_TOTDEPL = 3
1172 prop_tag(igtyp)%G_TOTROT = 3
1173 prop_tag(igtyp)%G_SKEW = 3
1174 prop_tag(igtyp)%G_MASS = 1
1175 prop_tag(igtyp)%G_NUVAR = nuvar
1176 prop_tag(igtyp)%G_LENGTH_ERR = 3
1180 & 5x,
'JOINT TYPE . . . . . . . . SPHERICAL JOINT'/)
1182 & 5x,
'JOINT TYPE . . . . . . . . REVOLUTE JOINT'/)
1184 & 5x,
'JOINT TYPE . . . . . . . . CYLINDRICAL JOINT'/)
1186 & 5x,
'JOINT TYPE . . . . . . . . PLANAR JOINT'/)
1188 & 5x,
'JOINT TYPE . . . . . . . . UNIVERSAL JOINT'/)
1190 & 5x,
'JOINT TYPE . . . . . . . . TRANSLATIONAL JOINT'/)
1192 & 5x,
'JOINT TYPE . . . . . . . . OLDHAM JOINT'/)
1194 & 5x,
'JOINT TYPE . . . . . . . . RIGID JOINT'/)
1196 & 5x,
'JOINT TYPE . . . . . . . . FREE JOINT'/)
1199 & 5x,
'BLOCKING STIFFNESS KNN . . . . . . . . . . =',1pg20.13/,
1200 & 5x,
'SCAL. FACTOR FOR ROT. BLOCKING STIFFNESS . .=',1pg20.13/,
1201 & 5x,
'CRITICAL DAMPING COEFFICIENT . . . . . . . =',1pg20.13/,
1202 & 5x,
'SENSOR ID . . . . . . . . . . . . . . . . . =',i10/)
1205 & 5x,
'BLOCKING STIFFNESS KNN . . . . . . . . . . =',
' AUTO'/,
1206 & 5x,
'SCALING FACTOR FOR AUTOMATIC STIFFNESS . =',1pg20.13/,
1207 & 5x,
'CRITICAL DAMPING COEFFICIENT . . . . . . . =',1pg20.13/,
1208 & 5x,
'SENSOR ID . . . . . . . . . . . . . . . . =',i10/)
1211 & 5x,
'BLOCKING STIFFNESS KNN . . . . . . . . . . =',1pg20.13/,
1212 & 5x,
'SCALING FACTOR FOR AUTOMATIC STIFFNESS . =',1pg20.13/,
1213 & 5x,
'CRITICAL DAMPING COEFFICIENT . . . . . . . =',1pg20.13/,
1214 & 5x,
'SENSOR ID . . . . . . . . . . . . . . . . =',i10/,
1215 & 5x,
'SKEW ID 1 . . . . . . . . . . . . . . . . =',i10/,
1216 & 5x,
'SKEW ID 2 . . . . . . . . . . . . . . . . =',i10/)
1219 & 5x,
'BLOCKING STIFFNESS KNN . . . . . . . . . . =',
' AUTO'/,
1220 & 5x,'scaling factor
for automatic stiffness . =
',1PG20.13/,
1221 & 5X,'critical
damping coefficient . . . . . . . =
',1PG20.13/,
1222 & 5X,'sensor id . . . . . . . . . . . . . . . . =
',I10/,
1223 & 5X,'skew id 1 . . . . . . . . . . . . . . . . =
',I10/,
1224 & 5X,'skew id 2 . . . . . . . . . . . . . . . . =
',I10/)
1227 & 5X,'user property set
'/,
1228 & 5X,'property set number . . . . . . . . . .=
',I10)
1231 & 5X,'user property set
'/,
1232 & 5X,'property set number . . . . . . . . . .=
',I10,
1233 & 5X,'confidential data
'//)