Télécharger ddnsth.eso

Retour à la liste

Numérotation des lignes :

ddnsth
  1. C DDNSTH SOURCE CHAT 05/01/12 22:38:08 5004
  2. C DDNSTH SOURCE AM 95/12/27 21:26:13 1962
  3. SUBROUTINE DDNSTH(IR,IC,DP,PN,U,E,E0,EYP,EYN,PCP,PCN,PYP,PYN,
  4. * UYP,UYN,CP,CN,PSP,PSN,BP,BN,UEP,PEP,UEN,
  5. * PEN,UCP,UCN,E1P,E1N,E2P,E2N,USP,USN,UTP,
  6. * PTP,UTN,PTN,EP,EN)
  7. C=======================================================================
  8. C 3-PARAMETER MODEL
  9. C
  10. C THIS PROGRAM TRACES THE HYSTERETIC BEHAVIOR OF R/C COMPONENTS
  11. C - "DDNSTH" REPRESENTS DEGRADING, DETERIORATING,
  12. C NONSYMMETRIC, SLIP-TYPE & TRILINEAR HYSTERETIC MODEL.
  13. C
  14. C *ESSENTIAL VARIABLES
  15. C IR= NUMBER OF BRANCH OF HYSTERETIC RULE
  16. C IC= NON-ZERO VALUE INDICATES CHANGE OF BRANCH
  17. C DP= INCREMENTAL STRESS
  18. C PN= NEW STRESS
  19. C U= NEW DEFORMATION
  20. C E= INSTANTANIOUS STIFFNESS
  21. C *PERMANENT VARIABLES FOR ENVELOPE CURVES (LAST LETTER "P" INDICATES
  22. C POSITIVE SIDE, AND "N" INDICATES NEGATIVE SIDE)
  23. C E0= INITIAL STIFFNESS
  24. C EYP,EYN= POST-YIELDING STIFFNESS
  25. C PCP,PCN= CRACKING STRESS
  26. C PYP,PYN= YIELDING STRESS
  27. C UYP,UYN= YIELDING DEFORMATION
  28. C
  29. C *PERMANENT VARIABLES FOR DEGRADATION
  30. C CP,CN= COEFFICIENT FOR COMMON POINTS OF UNLOADING BRANCH
  31. C
  32. C *PERMANENT VARIABLES FOR SLIPPAGE
  33. C PSP,PSN= SLIPPING YIELD STRESS (WHEN NO SLIP IS EXPECTED,
  34. C SET PSP>PYP,PSN<PYN)
  35. C
  36. C *PERMANENT VARIABLES FOR DETERIORATION
  37. C BP,BN= RATIO OF PLASTIC DEFORMATION INCREASE PER UNIT
  38. C INCREASE OF ABSORBED ENERGY.
  39. C
  40. C *TEMPORAL VARIABLES FOR DEGRADATION
  41. C UEP,PEP= EXPERIANCED MAXIMUM (POSITIVE) POINT
  42. C UEN,PEN= EXPERIANCED MINIMUM (NEGATIVE) POINT
  43. C UCP,UCN= UNLOADING (RELOADING) TURNING POINT ON X-AXIS
  44. C E1P,E1N= FIRST UNLOADING (RELOADING) STIFFNESS
  45. C E2P,E2N= SECOND RELOADING (UNLOADING)STIFFNESS
  46. C
  47. C *TEMPORAL VARIABLES FOR SLIPPAGE
  48. C USP,USN= TARGET SLIP YIELD DEF. (CRACK CLOSING POINT)
  49. C
  50. C *TEMPORAL VARIABLES FOR DETERIORATION
  51. C UPT,PTP= EXPECTED NEW MAXIMUN POINT
  52. C UTN,PTN= EXPECTED NEW MINIMUM POINT
  53. C EP = INCREASE OF ABSORBED ENERGY TO CACULATE
  54. C NEW MAXIMUM POINT
  55. C EN = INCREASE OF ABSORBED ENERGY TO CACULATE
  56. C NEW MINIMUM POINT
  57. C
  58. C *NECESSARY INITIAL CONDITION
  59. C IR= 1 , PN= (LONG TERM LOADING) , PEN=PEP= 0
  60. C
  61. C===================================================================
  62. IMPLICIT INTEGER(I-N)
  63. IMPLICIT REAL*8(A-H,O-Z)
  64. C
  65. IO=IR
  66. UO=U
  67. PO=PN
  68. PN=PO+DP
  69. GO TO(10,20,30,40,50,60,70,80,90,100,110,120,130,140,150),IR
  70. C
  71. C -----
  72. C IR=1
  73. C -----
  74. C
  75. 10 IF(PN.LT.PCP)GO TO 11
  76. IR=2
  77. PO=PCP
  78. UO=PCP/E0
  79. E=(PYP-PCP)/(UYP-UO)
  80. PN=PCP+(PN-PCP)*E/E0
  81. GO TO 22
  82. 11 IF(PN.LT.PCN)GO TO 12
  83. E=E0
  84. U=PN/E
  85. GO TO 200
  86. 12 IR=3
  87. PO=PCN
  88. UO=PCN/E0
  89. E=(PYN-PCN)/(UYN-UO)
  90. PN=PCN+(PN-PCN)*E/E0
  91. GO TO 32
  92. C
  93. C -----
  94. C IR=2
  95. C -----
  96. C
  97. 20 IF(DP.GE.0)GO TO 22
  98. 21 IR=6
  99. PEP=PO
  100. UEP=UO
  101. EP=0.
  102. E1P=(PO+CP*PYP)/(UO+CP*PYP/E0)
  103. UCP=U-PO/E1P
  104. USP=UCP
  105. PN=PO+DP*E1P/E
  106. E=E1P
  107. GO TO 63
  108. 22 IF(PN.GT.PYP)GO TO 23
  109. U=PCP/E0+(PN-PCP)/E
  110. EN=EN+0.5*(PN+PO)*(U-UO)
  111. GO TO 200
  112. 23 IR=4
  113. PN=PYP+(PN-PYP)*EYP/E
  114. U=UYP+(PN-PYP)/EYP
  115. EN=EN+0.5*(PYP+PO)*(UYP-UO)+0.5*(PN+PYP)*(U-UYP)
  116. E=EYP
  117. GO TO 200
  118. C
  119. C -----
  120. C IR=3
  121. C -----
  122. C
  123. 30 IF(DP.LE.0.)GO TO 32
  124. 31 IR=7
  125. PEN=PO
  126. UEN=UO
  127. EN=0.
  128. E1N=(PO+CN*PYN)/(UO+CN*PYN/E0)
  129. UCN=UO-PO/E1N
  130. USN=UCN
  131. PN=PO+DP*E1N/E
  132. E=E1N
  133. GO TO 73
  134. 32 IF(PN.LT.PYN)GO TO 33
  135. U=PCN/E0+(PN-PCN)/E
  136. EP=EP+0.5*(PN+PO)*(U-UO)
  137. GO TO 200
  138. 33 IR=5
  139. PN=PYN+(PN-PYN)*EYN/E
  140. U=UYN+(PN-PYN)/EYN
  141. EP=EP+0.5*(PYN+PO)*(UYN-UO)+0.5*(PN+PYN)*(U-UYN)
  142. E=EYN
  143. GO TO 200
  144. C
  145. C -----
  146. C IR=4
  147. C -----
  148. C
  149. 40 IF(DP.LT.0.)GO TO 21
  150. 41 U=UYP+(PN-PYP)/EYP
  151. E=EYP
  152. EN=EN+0.5*(PO+PN)*(U-UO)
  153. GO TO 200
  154. C
  155. C -----
  156. C IR=5
  157. C -----
  158. C
  159. 50 IF(DP.GT.0.)GO TO 31
  160. 51 U=UYN+(PN-PYN)/EYN
  161. E=EYN
  162. EP=EP+0.5*(PO+PN)*(U-UO)
  163. GO TO 200
  164. C
  165. C -----
  166. C IR=6
  167. C -----
  168. C
  169. 60 IF(PN.LE.PEP)GO TO 63
  170. 61 IF(PEP.GT.PYP)GO TO 62
  171. IR=2
  172. E2=(PYP-PCP)/(UYP-PCP/E0)
  173. PN=PEP+(PN-PEP)*E2/E
  174. EN=EN+0.5*(PEP+PO)*(UEP-UO)
  175. PO=PEP
  176. UO=UEP
  177. E=E2
  178. GO TO 22
  179. 62 IR=4
  180. PN=PEP+(PN-PEP)*EYP/E
  181. EN=EN+0.5*(PEP+PO)*(UEP-UO)
  182. PO=PEP
  183. UO=UEP
  184. GO TO 41
  185. 63 IF(PN.LT.0.)GO TO 64
  186. U=UCP+PN/E1P
  187. X=0.5*(PO+PN)*(U-UO)
  188. EP=EP+X
  189. EN=EN+X
  190. E=E1P
  191. GO TO 200
  192. 64 IR=8
  193. X=0.5*PO**2/E1P
  194. PO=0.
  195. UO=UCP
  196. EP=EP-X
  197. EN=EN-X
  198. IF(PEN.LE.PCN)GO TO 65
  199. E1N=E0
  200. E2N=-PCN/(UCP-PCN/E0)
  201. PN=PN*E2N/E1P
  202. E=E2N
  203. GO TO 84
  204. CAVP2 65 IF(PSN.GT.PYN)GO TO 66
  205. 65 IF(PSN.GT.PYN.AND.PSN.GT.PEN)GO TO 66
  206. XE=0.5*PEN*(UEN-UCP)+EN
  207. CAVP1
  208. IF(XE.LT.0.0)XE=0.0
  209. CAVP1
  210. UTN=UEN-BN*XE
  211. E2=(PYN-PCN)/(UYN-PCN/E0)
  212. PTN=PCN+E2*(UTN-PCN/E0)
  213. IF(UTN.LT.UYN)PTN=PYN+EYN*(UTN-UYN)
  214. E1N=(CN*PYN+PTN)/(UTN+CN*PYN/E0)
  215. E2N=PTN/(UTN-UCP)
  216. PN=PN*E2N/E
  217. E=E2N
  218. GO TO 87
  219. 66 X=UEN-(PEN-PSN)/E1N-UCP
  220. PX=E0*(PSN*UCP/X)/(PSN/X-E0)
  221. XE=0.5*(UEN-UCP)*PX+0.5*PEN*(UEN-PX/E0)+EN
  222. CAVP1
  223. IF(XE.LT.0.0)XE=0.0
  224. CAVP1
  225. UTN=UEN-BN*XE
  226. E2=(PYN-PCN)/(UYN-PCN/E0)
  227. PTN=PCN+E2*(UTN-PCN/E0)
  228. IF(UTN.LT.UYN)PTN=PYN+EYN*(UTN-UYN)
  229. E1N=(CN*PYN+PTN)/(UTN+CN*PYN/E0)
  230. USN=UTN-PTN/E1N
  231. E2N=PSN/(UTN-(PTN-PSN)/E1N-UCP)
  232. PN=PN*E2N/E
  233. E=E2N
  234. GO TO 89
  235. C
  236. C -----
  237. C IR=7
  238. C -----
  239. C
  240. 70 IF(PN.GE.PEN)GO TO 73
  241. 71 IF(PEN.LT.PYN)GO TO 72
  242. IR=3
  243. E2=(PYN-PCN)/(UYN-PCN/E0)
  244. PN=PEN+(PN-PEN)*E2/E
  245. EP=EP+0.5*(PEN+PO)*(UEN-UO)
  246. PO=PEN
  247. UO=UEN
  248. E=E2
  249. GO TO 32
  250. 72 IR=5
  251. PN=PEN+(PN-PEN)*EYN/E
  252. EP=EP+0.5*(PEN+PO)*(UEN-UO)
  253. PO=PEN
  254. UO=UEN
  255. GO TO 51
  256. 73 IF(PN.GT.0.)GO TO 74
  257. U=UCN+PN/E1N
  258. X=0.5*(PO+PN)*(U-UO)
  259. EP=EP+X
  260. EN=EN+X
  261. E=E1N
  262. GO TO 200
  263. 74 IR=9
  264. X=0.5*PO**2/E1N
  265. PO=0.
  266. UO=UCN
  267. EP=EP-X
  268. EN=EN-X
  269. IF(PEP.GT.1.001*PCP)GO TO 75
  270. E1P=E0
  271. E2P=PCP/(PCP/E0-UCN)
  272. PN=PN*E2P/E1N
  273. E=E2P
  274. GO TO 94
  275. CAVP1 75 IF(PSP.LT.PYP)GO TO 76
  276. 75 IF(PSP.LT.PYP.AND.PSP.LT.PEP)GO TO 76
  277. XE=0.5*PEP*(UEP-UCN)+EP
  278. CAVP1
  279. IF(XE.LT.0.0)XE=0.0
  280. CAVP1
  281. UTP=UEP+BP*XE
  282. E2=(PYP-PCP)/(UYP-PCP/E0)
  283. PTP=PCP+E2*(UTP-PCP/E0)
  284. IF(UTP.GT.UYP)PTP=PYP+EYP*(UTP-UYP)
  285. E1P=(CP*PYP+PTP)/(UTP+CP*PYP/E0)
  286. E2P=PTP/(UTP-UCN)
  287. PN=PN*E2P/E
  288. E=E2P
  289. GO TO 97
  290. 76 X=UEP-(PEP-PSP)/E1P-UCN
  291. PX=E0*(PSP*UCN/X)/(PSP/X-E0)
  292. XE=0.5*(UEP-UCN)*PX+0.5*PEP*(UEP-PX/E0)+EP
  293. CAVP1
  294. IF(XE.LT.0.0)XE=0.0
  295. CAVP1
  296. UTP=UEP+BP*XE
  297. E2=(PYP-PCP)/(UYP-PCP/E0)
  298. PTP=PCP+E2*(UTP-PCP/E0)
  299. IF(UTP.GT.UYP)PTP=PYP+EYP*(UTP-UYP)
  300. E1P=(CP*PYP+PTP)/(UTP+CP*PYP/E0)
  301. USP=UTP-PTP/E1P
  302. E2P=PSP/(UTP-(PTP-PSP)/E1P-UCN)
  303. PN=PN*E2P/E
  304. E=E2P
  305. GO TO 99
  306. C
  307. C -----
  308. C IR=8
  309. C -----
  310. C
  311. 80 IF(DP.LT.0.)GO TO 83
  312. IR=13
  313. 81 UCN=UO-PO/E1N
  314. PN=PO+DP*E1N/E2N
  315. E=E1N
  316. GO TO 73
  317. 83 IF(PEN.LT.1.001*PCN)GO TO 86
  318. 84 IF(PN.LT.PCN)GO TO 85
  319. E=E2N
  320. U=UCP+PN/E
  321. X=0.5*(PO+PN)*(U-UO)
  322. EP=EP+X
  323. GO TO 200
  324. 85 IR=3
  325. X=0.5*(PCN+PO)*(PCN/E0-UO)
  326. EP=EP+X
  327. E2=(PYN-PCN)/(UYN-PCN/E0)
  328. PN=PCN+E2*(PN-PCN)/E2N
  329. PO=PCN
  330. UO=PCN/E0
  331. E=E2
  332. GO TO 32
  333. 86 IF(PSN.GT.PYN)GO TO 89
  334. 87 IF(PN.GT.PTN)GO TO 88
  335. PEN=PTN
  336. UEN=UTN
  337. GO TO 71
  338. 88 E=E2N
  339. U=UO+(PN-PO)/E
  340. X=0.5*(PO+PN)*(U-UO)
  341. EP=EP+X
  342. EN=EN+X
  343. GO TO 200
  344. CAVP89 PX=E0*E2N*UCP/(E2N-E0)
  345. CPP189 PX=E2N*(USN-UCP)
  346. CAVP89 PX=E2N*UCP*PTN/(E2N*UTN-PTN)
  347. 89 PX=E2N*(USN-UCP)
  348. IF(PN.GT.PX)GO TO 88
  349. IR=10
  350. X=0.5*(USN-UO)*(PX+PO)
  351. EP=EP+X
  352. EN=EN+X
  353. PO=PX
  354. CAVP UO=PX/E0
  355. UO=PX/E2N+UCP
  356. E2N=(PTN-PX)/(UTN-UO)
  357. PN=PX+(PN-PX)*E2N/E
  358. E=E2N
  359. GO TO 87
  360. C
  361. C -----
  362. C IR=9
  363. C -----
  364. C
  365. 90 IF(DP.GT.0.)GO TO 93
  366. IR=12
  367. 91 UCP=UO-PO/E1P
  368. PN=PO+DP*E1P/E2P
  369. E=E1P
  370. GO TO 63
  371. 93 IF(PEP.GT.1.001*PCP)GO TO 96
  372. 94 IF(PN.GT.PCP)GO TO 95
  373. E=E2P
  374. U=UCN+PN/E
  375. X=0.5*(PO+PN)*(U-UO)
  376. EN=EN+X
  377. GO TO 200
  378. 95 IR=2
  379. X=0.5*(PCP+PO)*(PCP/E0-UO)
  380. EN=EN+X
  381. E2=(PYP-PCP)/(UYP-PCP/E0)
  382. PN=PCP+E2*(PN-PCP)/E2P
  383. PO=PCP
  384. UO=PCP/E0
  385. E=E2
  386. GO TO 22
  387. 96 IF(PSP.LT.PYP)GO TO 99
  388. 97 IF(PN.LT.PTP)GO TO 98
  389. PEP=PTP
  390. UEP=UTP
  391. GO TO 61
  392. 98 E=E2P
  393. U=UO+(PN-PO)/E
  394. X=0.5*(PO+PN)*(U-UO)
  395. EP=EP+X
  396. EN=EN+X
  397. GO TO 200
  398. CAVP99 PX=E0*EP2*UCN/(E2P-E0)
  399. CAVP99 PX=E0*E2P*UCN/(E2P-E0)
  400. CPP199 PX=E2P*(USP-UCN)
  401. CAVP99 PX=E2P*UCN*PTP/(E2P*UTP-PTP)
  402. 99 PX=E2P*(USP-UCN)
  403. IF(PN.LT.PX)GO TO 98
  404. IR=11
  405. X=0.5*(USP-UO)*(PX+PO)
  406. EP=EP+X
  407. EN=EN+X
  408. PO=PX
  409. CAVP UO=PX/E0
  410. UO=PX/E2P+UCN
  411. E2P=(PTP-PX)/(UTP-UO)
  412. PN=PX+(PN-PX)*E2P/E
  413. E=E2P
  414. GO TO 97
  415. C
  416. C -----
  417. C IR=10
  418. C -----
  419. C
  420. 100 IF(DP.LT.0.)GO TO 87
  421. IR=15
  422. GO TO 81
  423. C
  424. C -----
  425. C IR=11
  426. C -----
  427. C
  428. 110 IF(DP.GT.0.)GO TO 97
  429. IR=14
  430. GO TO 91
  431. C
  432. C -----
  433. C IR=12
  434. C -----
  435. C
  436. 120 PX=(UCP-UCN)/(E1P-E2P)*E1P*E2P
  437. IF(PN.LT.PX)GO TO 63
  438. IR=9
  439. UX=UCP+PX/E1P
  440. X=0.5*(PX+PO)*(UX-UO)
  441. PN=PX+(PN-PX)*E2P/E1P
  442. E=E2P
  443. PO=PX
  444. UO=UX
  445. EP=EP+X
  446. EN=EN+X
  447. GO TO 93
  448. C
  449. C -----
  450. C IR=13
  451. C -----
  452. C
  453. 130 PX=(UCN-UCP)/(E1N-E2N)*E1N*E2N
  454. IF(PN.GT.PX)GO TO 73
  455. IR=8
  456. UX=UCN+PX/E1N
  457. X=0.5*(PX+PO)*(UX-UO)
  458. PN=PX+(PN-PX)*E2N/E1N
  459. E=E2N
  460. PO=PX
  461. UO=UX
  462. EP=EP+X
  463. EN=EN+X
  464. GO TO 83
  465. C
  466. C -----
  467. C IR=14
  468. C -----
  469. C
  470. 140 PX=(E1P*E2P*(UCP-UTP)+E1P*PTP)/(E1P-E2P)
  471. IF(PN.LT.PX)GO TO 63
  472. IR=11
  473. UX=UCP+PX/E1P
  474. X=0.5*(PX+PO)*(UX-UO)
  475. PN=PX+(PN-PX)*E2P/E1P
  476. E=E2P
  477. PO=PX
  478. UO=UX
  479. EP=EP+X
  480. EN=EN+X
  481. GO TO 97
  482. C
  483. C -----
  484. C IR=15
  485. C -----
  486. C
  487. 150 PX=(E1N*E2N*(UCN-UTN)+E1N*PTN)/(E1N-E2N)
  488. IF(PN.GT.PX)GO TO 73
  489. IR=10
  490. UX=UCN+PX/E1N
  491. X=0.5*(PX+PO)*(UX-UO)
  492. PN=PX+(PN-PX)*E2N/E1N
  493. E=E2N
  494. PO=PX
  495. UO=UX
  496. EP=EP+X
  497. EN=EN+X
  498. GO TO 87
  499. C ------------------------------------------------------------------
  500. 200 IC=0
  501. IF(IO.NE.IR)IC=IO
  502. C=======================================================================
  503. RETURN
  504. END
  505.  
  506.  
  507.  

© Cast3M 2003 - Tous droits réservés.
Mentions légales