Télécharger dirich.eso

Retour à la liste

Numérotation des lignes :

dirich
  1. C DIRICH SOURCE CB215821 23/07/12 21:15:04 11704
  2. SUBROUTINE DIRICH
  3.  
  4. IMPLICIT INTEGER(I-N)
  5. IMPLICIT REAL*8(A-H,O-Z)
  6.  
  7. -INC PPARAM
  8. -INC CCOPTIO
  9. -INC CCNOYAU
  10. -INC SMTABLE
  11. -INC SMLREEL
  12.  
  13. LOGICAL LOGRE,LOGIN
  14. REAL*8 TEMPS(0:1000),YOUNG(0:1000)
  15. REAL*8 TREL(0:10),EVO(0:1000,0:10)
  16. CHARACTER*8 CHARIN,CHARRE
  17. CHARACTER*(8) CHARA,TYPIND,TYPOBJ
  18. C
  19. CHARACTER*4 MOUNIT,MOCODE(3)
  20.  
  21. C
  22. DATA MOCODE/'EURO','BPEL','LCPC'/
  23.  
  24. XVALIN=0.D0
  25. CHARIN=' '
  26. LOGIN =.FALSE.
  27. IOBIN=0
  28. IVALRE=0
  29. XVALRE=0.D0
  30. IOBRE=0
  31.  
  32. C
  33. C ON LIT LE MOT UNITE
  34. C
  35. CALL LIRCHA(MOUNIT,1,IRETOU)
  36. IF(IERR.NE.0) RETURN
  37. CALL LIRREE(TMAXA,1,IRETOU)
  38. IF(IERR.NE.0) RETURN
  39. CALL LIRENT(NB,1,IRETOU)
  40. IF(IERR.NE.0) RETURN
  41. CALL LIRMOT(MOCODE,3,IMLU,0)
  42. *
  43. * MOT CLE EURO PAR DEFAUT
  44. *
  45. IF(IMLU.EQ.0) IMLU=1
  46. *
  47. * CAS EUROCODE
  48. *
  49.  
  50. IF(IMLU.EQ.1) THEN
  51. CALL LIRREE(HO,1,IRETOU)
  52. IF(IERR.NE.0) RETURN
  53. CALL LIRREE(ROH,1,IRETOU)
  54. IF(IERR.NE.0) RETURN
  55. CALL LIRREE(S,1,IRETOU)
  56. IF(IERR.NE.0) RETURN
  57. CALL LIRREE(FCM,1,IRETOU)
  58. IF(IERR.NE.0) RETURN
  59. *
  60. * CAS BPEL
  61. *
  62. ELSE IF(IMLU.EQ.2) THEN
  63. CALL LIRREE(RM,1,IRETOU)
  64. IF(IERR.NE.0) RETURN
  65. CALL LIRREE(RH,1,IRETOU)
  66. IF(IERR.NE.0) RETURN
  67. CALL LIRREE(FC28,1,IRETOU)
  68. IF(IERR.NE.0) RETURN
  69. *
  70. * CAS LCPC
  71. *
  72. ELSE
  73. CALL LIRREE(H0,1,IRETOU)
  74. IF(IERR.NE.0) RETURN
  75. CALL LIRREE(RHOS,1,IRETOU)
  76. IF(IERR.NE.0) RETURN
  77. CALL LIRREE(E1AN,1,IRETOU)
  78. IF(IERR.NE.0) RETURN
  79. ENDIF
  80. *
  81. * TESTS SUR LES DONNEES
  82. *
  83. TMAX=TMAXA
  84. IF (MOUNIT.EQ.'SECO') THEN
  85. TMAX=TMAXA/3600./24.
  86. ELSE IF (MOUNIT.EQ.'ANNE') THEN
  87. TMAX=TMAXA*365.
  88. ELSE IF (MOUNIT.NE.'JOUR') THEN
  89. MOTERR = MOUNIT
  90. CALL ERREUR(7)
  91. RETURN
  92. ENDIF
  93.  
  94. IF (NB.GT.8) THEN
  95. NB=8
  96. ENDIF
  97.  
  98. *
  99. * ICI APPEL AUX ROUTINES DE CALCUL
  100. *
  101. IF(IMLU.EQ.1) THEN
  102. *
  103. * ENTREES : HO en mm
  104. * EUROCODE ROH en valeur reelle ( entre 0 et 1 )
  105. * FCM en MPa
  106. * Temps en jours
  107. *
  108. HO=HO*1000.D0
  109. ROH=ROH/100.D0
  110. CALL EURODI(HO,ROH,FCM,S,TMAX,NB,TEMPS,
  111. & TREL,EVO,YOUNG,LIDIM)
  112. *
  113. ELSE IF (IMLU.EQ.2) THEN
  114. *
  115. * ENTREES : RM en cm
  116. * BPEL RH en % ( entre 0 et 100 )
  117. * FC28 en MPa
  118. * Temps en jours
  119. *
  120. RM=RM*100.D0
  121. CALL BPELDI(RM,RH,FC28,TMAX,NB,TEMPS,
  122. & TREL,EVO,YOUNG,LIDIM)
  123.  
  124. ELSE
  125. *
  126. * ENTREES : H0 en mm
  127. * LCPC RHOS taux d'armatures passives
  128. * dans une section de beton arme.
  129. * (0. < RHOS < 1.)
  130. *
  131. H0 = H0*1000.D0
  132. CALL LCPCDI(H0,RHOS,E1AN,TMAX,NB,TEMPS,
  133. & TREL,EVO,YOUNG,LIDIM)
  134. *
  135. ENDIF
  136. *
  137. * CREATION DES TABLES
  138. *
  139. CALL CRTABL(IPT1)
  140. CALL CRTABL(IPT2)
  141.  
  142.  
  143. *
  144. * CREATION DE DEUX PROGS
  145. *
  146. JG=LIDIM+1
  147. *
  148. * AM 5/9/16 ON REMET LA SORTIE DANS LES UNITES ANNONCEES
  149. *
  150. IF (MOUNIT.EQ.'SECO') THEN
  151. FAFAC= 3600.*24.
  152. ELSE IF (MOUNIT.EQ.'ANNE') THEN
  153. FAFAC= 1./365.
  154. ELSE
  155. FAFAC= 1.
  156. ENDIF
  157.  
  158. * ON CREE LES ABSCISSES
  159. SEGINI MLREEL
  160. IPRABS=MLREEL
  161. DO I=0,LIDIM
  162. PROG(I+1)=TEMPS(I)*FAFAC
  163. ENDDO
  164. *
  165. * AM 5/9/16 ON ETEND LES TEMPS A TMAX SI BESOIN
  166. *
  167. IF(PROG(JG).LT.TMAXA) PROG(JG)=TMAXA
  168.  
  169. SEGDES MLREEL
  170.  
  171.  
  172. * ON CREE LE PROG DES MODULES D'YOUNG
  173. SEGINI MLREEL
  174. IPRMOD=MLREEL
  175. DO I=0,LIDIM
  176. PROG(I+1)=YOUNG(I)
  177. ENDDO
  178. SEGDES MLREEL
  179.  
  180. *
  181. * CREATION DE L'OBJET MODULE D'YOUNG
  182. *
  183.  
  184. CALL DIRIC1('TEMP',IPRABS,'YOUN',IPRMOD,IPEVYO)
  185.  
  186.  
  187. DO 10 IC=0,NB
  188. *
  189. * ON CREE LES ORDONNEES
  190. *
  191. SEGINI MLREEL
  192. IPRORD=MLREEL
  193. DO I=0,LIDIM
  194. PROG(I+1)=EVO(I,IC)
  195. ENDDO
  196. *
  197. * AM 5/9/16 ON REMET LES INVERSES DES TEMPS DE RELAXATION
  198. * DANS LES BONNES UNITES
  199. *
  200. TREL(IC)=TREL(IC)/FAFAC
  201. *
  202. *
  203. * CREATION D'UN OBJET EVOLUTION
  204. *
  205.  
  206. CALL DIRIC1('TEMP',IPRABS,'MODU',IPRORD,IPEV)
  207. IF(IERR.NE.0) RETURN
  208. *
  209. * DANS LA TABLE DES MODULES
  210. * A L'INDICE II ON MET L'EVOLUTION DE POINTEUR IPEV
  211. *
  212. CALL ECCTAB(IPT2,'ENTIER ',IC,XVALIN,CHARIN,LOGIN,IOBIN,
  213. & 'EVOLUTIO',IVALRE,XVALRE,CHARRE,LOGRE,IPEV)
  214.  
  215.  
  216. *
  217. * DANS LA TABLE DES TEMPS
  218. * A L'INDICE II ON MET LE TEMPS TREL(IC)
  219. *
  220. CALL ECCTAB(IPT1,'ENTIER ',IC,XVALIN,CHARIN,LOGIN,IOBIN,
  221. & 'FLOTTANT',IVALRE,TREL(IC),CHARRE,LOGRE,IOBRE)
  222.  
  223.  
  224. 10 CONTINUE
  225.  
  226.  
  227.  
  228. *
  229. * ECRITURE DES RESULTATS
  230. *
  231. CALL ECROBJ('TABLE',IPT2)
  232. CALL ECROBJ('TABLE',IPT1)
  233. CALL ECROBJ('EVOLUTIO',IPEVYO)
  234. RETURN
  235. END
  236.  
  237.  
  238.  
  239.  
  240.  

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