Télécharger sigsol.eso

Retour à la liste

Numérotation des lignes :

sigsol
  1. C SIGSOL SOURCE CB215821 24/04/12 21:17:14 11897
  2. SUBROUTINE SIGSOL
  3. C_______________________________________________________________________
  4. C
  5. C Operateur contraintes lineaires pour objet solution
  6. C
  7. C
  8. C SYNTAXE :
  9. C _________
  10. C
  11. C SOL1 = SIGSOL MODL1 MAT1 ( CAR1 ) SOLUT ;
  12. C
  13. C MAT1 Champ de CARACTERISTIQUES ou de HOOKE (type MCHAML )
  14. C CAR1 Champ de CARACTERISTIQUES (type MCHAML)
  15. C SOLUT OBJET solution (ne contenant pas de contraintes )
  16. C
  17. C FEVRIER 87 BROCHARD :
  18. C - LE CALCUL EFFECTIF EST FAIT DANS SIGMAP
  19. C
  20. C Passage aux nouveaux CHAMELEMS par I.Monnier le 3.07.90
  21. C_______________________________________________________________________
  22. C
  23. IMPLICIT INTEGER(I-N)
  24. IMPLICIT REAL*8(A-H,O-Z)
  25. *
  26.  
  27. -INC PPARAM
  28. -INC CCOPTIO
  29. -INC SMCHAML
  30. -INC SMCHPOI
  31. -INC SMSOLUT
  32. -INC SMMODEL
  33. *
  34. LOGICAL L0,L1
  35. CHARACTER*8 MOMOD,MOSTA,MOPSM,CTYP,TYPRET,CHARRE
  36. CHARACTER*40 TYPBAS
  37. CHARACTER*72 CTEXT
  38. PARAMETER(XZER=0.D0,UNDEMI=.5D0,UN=1.D0)
  39. PARAMETER(IZERO=0,IUN=1)
  40. DATA MOMOD,MOSTA,MOPSM/'MODE ','SOLUSTAT','PSEUMODE'/
  41. INTEGER N1
  42. *
  43. * IPOI11 IRT11 OBJERT SOLUTION NE CONTENANT PAS DE
  44. * CONTRAINTES
  45. * IPOI1 IRT1 POINTEUR CHPO DEPL. OBJET SOLUTION
  46. *
  47.  
  48. ************************************************************************
  49. * INITIALISATIONS et VERIFICATION
  50. ************************************************************************
  51. *
  52. N1 = 0
  53. IPCHA1=0
  54. IPCHA2=0
  55. IPCHE1=0
  56. IPCHE2=0
  57.  
  58. c * verification de l'option de calcul des deformations
  59. c IF(MEPSIL.NE.1) THEN
  60. c CALL ERREUR(1037)
  61. c RETURN
  62. c ENDIF
  63. cbp, 2020-12-10 : ci dessus n'a plus lieu d'etre car SIGSOL travaille
  64. c toujours en hypothese de deformations lineaires
  65.  
  66.  
  67. ************************************************************************
  68. * LECTURE DES MODELE et MCHAML
  69. ************************************************************************
  70. *
  71. C LECTURE DU MODELE
  72. C
  73. CALL LIROBJ('MMODEL ',IPMODL,1,IRT1)
  74. CALL ACTOBJ('MMODEL ',IPMODL,1)
  75. IF (IERR.NE.0) RETURN
  76.  
  77. c * verification de l'option de calcul des deformations du modele
  78. c MMODEL=IPMODL
  79. c SEGACT,MMODEL
  80. c NSOUS=KMODEL(/1)
  81. c IF(N1.LE.0) GOTO 09
  82. c DO 01 ISOUS=1,NSOUS
  83. c IMODEL=KMODEL(ISOUS)
  84. c SEGACT,IMODEL
  85. c IF(IDERIV.NE.1)THEN
  86. c WRITE(IOIMP,*)'L OPERATEUR SIGS SUPPOSE DES PETITES PERTURBATIONS'
  87. c WRITE(IOIMP,*)'VOUS POUVEZ CHOISIR DES DEFORMATIONS LINEAIRES VIA'
  88. c & ,' LA COMMANDE :'
  89. c WRITE(IOIMP,*)' OPTI EPSI LINEAIRE;'
  90. c WRITE(IOIMP,*)'PLACÉ AVANT LA CONSTRUCTION DES MODELES'
  91. c WRITE(IOIMP,*)'OU LORS DE LA CREATION DES MODELES VIA :'
  92. c WRITE(IOIMP,*)' MODL1 = MODE ... EPSI LINEAIRE ...;'
  93. c CALL ERREUR(1037)
  94. c SEGDES,IMODEL
  95. c GOTO 02
  96. c ENDIF
  97. c SEGDES,IMODEL
  98. c 01 CONTINUE
  99. c 02 SEGDES,MMODEL
  100. c IF(IERR.NE.0) RETURN
  101. c 09 CONTINUE
  102. cbp, 2020-12-10 : ci dessus n'a plus lieu d'etre car SIGSOL travaille
  103. c toujours en hypothese de deformations lineaires
  104. C
  105. C LECTURE DU 1ER MCHAML
  106. C
  107. CALL LIROBJ('MCHAML ',IPIN,1,IRT1)
  108. CALL ACTOBJ('MCHAML ',IPIN,1)
  109. IF (IERR.NE.0) RETURN
  110. CALL REDUAF(IPIN,IPMODL,IPCHA1,0,IR,KER)
  111. IF(IR .NE. 1) CALL ERREUR(KER)
  112. IF(IERR .NE. 0) RETURN
  113. C
  114. C LECTURE DU 2EME MCHAML
  115. C
  116. CALL LIROBJ('MCHAML ',IPIN,0,IRT1)
  117. IF (IERR.NE.0) RETURN
  118. IPCHA2=0
  119. IF (IRT1 .EQ. 1) THEN
  120. CALL ACTOBJ('MCHAML ',IPIN,1)
  121. CALL REDUAF(IPIN,IPMODL,IPCHA2,0,IR,KER)
  122. IF(IR .NE. 1) CALL ERREUR(KER)
  123. IF(IERR .NE. 0) RETURN
  124. ENDIF
  125. C
  126. CALL RNGCHA(IPCHA1,IPCHA2,'CARACTERISTIQUES',
  127. 1 'MATRICE DE HOOKE',IPCHE1,IPCHE2)
  128. IF (IERR.NE.0) RETURN
  129. IF (IPCHE2.EQ.0) THEN
  130. IMAT=1
  131. ELSE
  132. IMAT=2
  133. ENDIF
  134.  
  135.  
  136. ************************************************************************
  137. * LECTURE D'UNE TABLE OU D'UN OBJET SOLUTION
  138. ************************************************************************
  139. *
  140. CALL QUETYP(CTYP,IUN,IRETOU)
  141.  
  142. ***** CAS D UNE TABLE **************************************************
  143. IF (CTYP(1:8).EQ.'TABLE ') THEN
  144. CALL LIRTAB('BASE_MODALE',ITBAS,IZERO,IRET)
  145. IF (IRET.EQ.0) THEN
  146. CALL LIRTAB('ENSEMBLE_DE_BASES',ITBAS,IUN,IRET)
  147. ENDIF
  148. IF (IERR.NE.0) RETURN
  149. CALL ACCTAB(ITBAS,'MOT',I0,X0,'SOUSTYPE',L0,IP0,
  150. & 'MOT',I1,X1,TYPBAS,L1,IP1)
  151. *
  152. * Cas ou la base est unique
  153. *
  154. IF (TYPBAS(1:11).EQ.'BASE_MODALE') THEN
  155. *
  156. * On recupere la base de modes
  157. *
  158. CALL ACCTAB(ITBAS,'MOT',I0,X0,'MODES',L0,IP0,
  159. & 'TABLE',I1,X1,' ',L1,IBAS)
  160. CALL SIGTAB('MODE',IBAS,IPCHE1,IPCHE2,IMAT,IPMODL)
  161. TYPRET = ' '
  162. CALL ACCTAB(ITBAS,'MOT',I0,X0,'PSEUDO_MODES',L0,IP0,
  163. & TYPRET,I1,X1,CHARRE,L1,ITPS)
  164. IF (ITPS.NE.0 .AND. TYPRET.EQ.'TABLE ') THEN
  165. CALL SIGTAB('PSMO',ITPS,IPCHE1,IPCHE2,IMAT,IPMODL)
  166. ENDIF
  167. *
  168. * Cas ou on a un ensemble de bases
  169. *
  170. ELSE IF (TYPBAS(1:17).EQ.'ENSEMBLE_DE_BASES') THEN
  171. *
  172. * On boucle sur le nombre de bases
  173. *
  174. IB = 0
  175. 10 CONTINUE
  176. TYPRET = ' '
  177. IB = IB + 1
  178. CALL ACCTAB(ITBAS,'ENTIER',IB,X0,' ',L0,IP0,
  179. & TYPRET,I1,X1,CHARRE,L1,ITTBAS)
  180. IF (ITTBAS.NE.0 .AND. TYPRET.EQ.'TABLE ') THEN
  181. CALL ACCTAB(ITTBAS,'MOT',I0,X0,'MODES',L0,IP0,
  182. & 'TABLE',I1,X1,' ',L1,IBAS)
  183. CALL SIGTAB('MODE',IBAS,IPCHE1,IPCHE2,IMAT,IPMODL)
  184. TYPRET = ' '
  185. CALL ACCTAB(ITTBAS,'MOT',I0,X0,'PSEUDO_MODES',L0,IP0,
  186. & TYPRET,I1,X1,CHARRE,L1,ITPS)
  187. IF (ITPS.NE.0 .AND. TYPRET.EQ.'TABLE ') THEN
  188. CALL SIGTAB('PSMO',ITPS,IPCHE1,IPCHE2,IMAT,IPMODL)
  189. ENDIF
  190. GOTO 10
  191. ENDIF
  192. ENDIF
  193. CALL ECROBJ('TABLE ',ITBAS)
  194. RETURN
  195. ENDIF
  196.  
  197.  
  198. ***** CAS D UNE SOLUTION ***********************************************
  199. * version appelee @ disparaitre...?
  200. CALL LIROBJ('SOLUTION',IPOI11,IUN,IRT11)
  201. IF(IERR.NE.0) RETURN
  202. C
  203. C CALCUL DES CONTRAINTES BOUCLES SUR LES MODES
  204. C OU LES SOLUTIONS STATIQUES OU LES PSEUDO-MODES.
  205. C
  206. MSOLUT=IPOI11
  207. SEGACT MSOLUT
  208. C
  209. C IMOD = 0 ERREUR, = 1 MODE, = 2 SOLUSTAT, = 3 PSEUMODE
  210. C
  211. IMOD=0
  212. IF(ITYSOL.EQ.'MODE ') IMOD=1
  213. IF(ITYSOL.EQ.'SOLUSTAT') IMOD=2
  214. IF(ITYSOL.EQ.'PSEUMODE') IMOD=3
  215. IF(IMOD.NE.0) GOTO 110
  216. MOTERR(1:8)='SOLUTION'
  217. CALL ERREUR(302)
  218. RETURN
  219. C
  220. 110 CONTINUE
  221. MSOLEN=MSOLIS(5)
  222. SEGACT MSOLEN
  223. N=ISOLEN(/1)
  224. SEGINI MSOLE1
  225. DO 200 ICHO=1,N
  226. IPOI1=ISOLEN(ICHO)
  227. MCHPOI = IPOI1
  228. SEGACT MCHPOI
  229. CTEXT = MOCHDE
  230. SEGDES MCHPOI
  231. IRT1=1
  232. IRT8=0
  233. IPOI6=0
  234. IRT6=0
  235. IRT9=0
  236. inoer=0
  237. c calcul lineaire des contraintes
  238. CALL SIGMAP(0,IPMODL,IPOI1,IPCHE1,IPCHE2,IMAT,IPOI8,IRET,inoer)
  239. IF(IRET.EQ.0) GOTO 210
  240. MSOLE1.ISOLEN(ICHO)=IPOI8
  241. 200 CONTINUE
  242. C
  243. C CREATION DU NOUVEL OBJET SOLUTION
  244. C
  245. SEGDES MSOLE1,MSOLEN
  246. NIPO=MSOLIS(/1)
  247. IF(NIPO.LE.6) NIPO=6
  248. SEGINI MSO1
  249. MSO1.ITYSOL=ITYSOL
  250. C
  251. DO 201 IPO=1,NIPO
  252. MSO1.MSOLIS(IPO)=MSOLIS(IPO)
  253. MSO1.MSOLIT(IPO)=MSOLIT(IPO)
  254. 201 CONTINUE
  255. MSO1.MSOLIS(6)=MSOLE1
  256. MSO1.MSOLIT(6)=5
  257. SEGDES MSO1,MSOLUT
  258. C
  259. C ECRITURE DU NOUVEL OBJET SOLUTION
  260. C
  261. CALL ECROBJ('SOLUTION',MSO1)
  262. RETURN
  263. C
  264. C ON N A PAS PU CREER UN CHAMELEM DE CONT. ON DETRUIT
  265. C LE NOUVEL OBJET SOLUTION
  266.  
  267. 210 CONTINUE
  268. SEGSUP MSOLE1
  269. SEGDES MSOLEN,MSOLUT
  270.  
  271. END
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
  278.  

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