Télécharger cotemo.eso

Retour à la liste

Numérotation des lignes :

cotemo
  1. C COTEMO SOURCE CB215821 24/04/12 21:15:30 11897
  2. SUBROUTINE COTEMO(IP1,MFR)
  3. c-----------------------------------------------------------------------
  4. c
  5. c teste les noms des composantes des MCHAML susceptibles d etre crees
  6. c avec le sous model : on ne veut pas de redondance
  7. c
  8. c-----------------------------------------------------------------------
  9. IMPLICIT INTEGER(I-N)
  10.  
  11. -INC PPARAM
  12. -INC CCOPTIO
  13. -INC SMELEME
  14. -INC SMMODEL
  15. pointeur nomid1.nomid
  16. segment NOMLIS
  17. CHARACTER*8 LESCOM(NTOT)
  18. CHARACTER*8 lecham(ntot)
  19. endsegment
  20. *
  21. character*8 mocham, moref
  22.  
  23. imodel = ip1
  24. ntot = 0
  25. segini nomlis
  26. nfor=formod(/2)
  27. ithe=0
  28. CALL PLACE(FORMOD,NFOR,IMAGN,'MAGNETODYNAMIQUE')
  29. CALL PLACE(FORMOD,NFOR,IDIFF,'DIFFUSION')
  30. CALL PLACE(FORMOD,NFOR,IELEC,'ELECTROSTATIQUE')
  31. CALL PLACE(FORMOD,NFOR,ITHEHY,'THERMOHYDRIQUE')
  32. CALL PLACE(FORMOD,NFOR,IRAYO,'RAYONNEMENT')
  33. CALL PLACE(FORMOD,NFOR,ICONV,'CONVECTION')
  34. CALL PLACE(FORMOD,NFOR,ITHER,'THERMIQUE')
  35. ithe=ithehy+iconv+ither+irayo
  36.  
  37. do lm = 1,22
  38.  
  39. MOCOMP=0
  40. mocham = ' '
  41.  
  42. goto (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
  43. & 16, 17, 18, 19, 20, 21, 22) lm
  44.  
  45. 1 NBROBL=1
  46. NBRFAC=0
  47. SEGINI NOMID
  48. LESOBL(1)='SCAL '
  49. MOCOMP=NOMID
  50. mocham = 'RESERVE '
  51. GOTO 120
  52. *
  53. 2 NBROBL=1
  54. NBRFAC=0
  55. SEGINI NOMID
  56. LESOBL(1)='MAHO '
  57. MOCOMP=NOMID
  58. mocham = 'MAHOOKE '
  59. GOTO 120
  60. *
  61. 3 NBROBL=1
  62. NBRFAC=0
  63. SEGINI NOMID
  64. LESOBL(1)='TEMP '
  65. MOCOMP=NOMID
  66. mocham = 'RESERVE '
  67. GOTO 120
  68. *
  69. 4 continue
  70. GOTO 120
  71.  
  72. 5 continue
  73. GOTO 120
  74. *
  75. 6 CALL IDPRIM(IMODEL,MFR,MOCOMP,NOBL,NFAC)
  76. mocham = 'DEPLACEM'
  77. GOTO 120
  78. *
  79. 7 CALL IDDUAL(IMODEL,MFR,MOCOMP,NOBL,NFAC)
  80. mocham = 'FORCES '
  81. GOTO 120
  82. *
  83. 8 continue
  84. GOTO 120
  85.  
  86. 9 continue
  87. GOTO 120
  88. *
  89. 10 continue
  90. if(lnomid(3).ne.0) then
  91. mocomp=lnomid(3)
  92. else
  93. CALL IDGRAD(MFR,IFOUR,MOCOMP,NOBL,NFAC)
  94. endif
  95. mocham = 'GRADIENT'
  96. GOTO 120
  97. *
  98. 11 if(lnomid(4).ne.0) then
  99. mocomp=lnomid(4)
  100. else
  101. CALL IDCONT(IMODEL,IFOUR,MOCOMP,NOBL,NFAC)
  102. endif
  103. mocham = 'CONTRAIN'
  104. GOTO 120
  105. *
  106. 12 if(lnomid(5).ne.0) then
  107. mocomp=lnomid(5)
  108. else
  109. CALL IDDEFO(IMODEL,IFOUR,MOCOMP,NOBL,NFAC)
  110. endif
  111. mocham = 'DEFORMAT'
  112. GOTO 120
  113. *
  114. 13 if(lnomid(6).ne.0) then
  115. mocomp=lnomid(6)
  116. else
  117. CALL IDMATR(MFR,IMODEL,MOCOMP,NOBL,NFAC)
  118. endif
  119. mocham = 'MATERIAU'
  120. GOTO 120
  121. *
  122. 14 if(lnomid(7).ne.0) then
  123. mocomp=lnomid(7)
  124. else
  125. CALL IDCARB(MELE,IFOUR,MOCOMP,NOBL,NFAC)
  126. endif
  127. mocham = 'CARACTER'
  128. GOTO 120
  129. *
  130. 15 if(lnomid(8).ne.0) then
  131. mocomp=lnomid(8)
  132. else
  133. CALL IDTEMP(MFR,IFOUR,NPINT,MOCOMP,NOBL,NFAC)
  134. endif
  135. mocham = 'TEMPERAT'
  136. GOTO 120
  137. *
  138. 16 if(lnomid(9).ne.0) then
  139. mocomp=lnomid(9)
  140. else
  141. CALL IDPRIN(MFR,IFOUR,MOCOMP,NOBL,NFAC)
  142. endif
  143. mocham = 'PRINCIPA'
  144. GOTO 120
  145. *
  146. 17 if(lnomid(13).ne.0) then
  147. mocomp=lnomid(13)
  148. else
  149. CALL IDDEIN(IMODEL,IFOUR,MOCOMP,NOBL,NFAC)
  150. endif
  151. mocham = 'DEFINELA'
  152. GOTO 120
  153. *
  154. 18 continue
  155. 19 continue
  156. GOTO 120
  157. *
  158. 20 if(lnomid(10).ne.0) then
  159. mocomp=lnomid(10)
  160. else
  161. CALL IDVARI(MFR,IMODEL,MOCOMP,NOBL,NFAC)
  162. endif
  163. mocham = 'VARINTER'
  164. GOTO 120
  165. *
  166. 21 if(lnomid(11).ne.0) then
  167. mocomp=lnomid(11)
  168. else
  169. CALL IDGRAF(MFR,IFOUR,MOCOMP,NOBL,NFAC)
  170. endif
  171. mocham = 'GRAFLEXI'
  172. GOTO 120
  173. *
  174. 22 if(lnomid(12).ne.0) then
  175. mocomp=lnomid(12)
  176. else
  177. CALL IDPHAS(MFR,IMODEL,MOCOMP,NOBL,NFAC)
  178. endif
  179. mocham = 'PHASES '
  180. GOTO 120
  181. *
  182. 120 CONTINUE
  183. nomid = mocomp
  184. if (nomid.gt.0) then
  185. C CB215821 : Il reste encore plein de SEGDES, NOMID dans les id___.eso ==> on laisse segact ici
  186. segact,nomid
  187. nobl = lesobl(/2)
  188. nfac = lesfac(/2)
  189. nto1 = lescom(/2)
  190. ntot = nto1 + nobl + nfac
  191. * write(6,*) 'lm ', lm, mocham, nobl, nfac,'nto1 ', nto1,mfr
  192. segadj nomlis
  193. do im = 1,(nobl+nfac)
  194. lecham(nto1 + im) = mocham
  195. if (im.le.nobl) then
  196. lescom(nto1 + im) = lesobl(im)
  197. else
  198. lescom(nto1 + im) = lesfac(im - nobl)
  199. endif
  200. enddo
  201. endif
  202. enddo
  203. *
  204. ntot = lescom(/2)
  205. * write(6,*) 'ntot -cotemo', ntot
  206. do 874 in = 1, (ntot - 1)
  207. moref = lescom(in)
  208. mocham = lecham(in)
  209. * write(6,*) 'comp-champ-ref' , in ,moref, mocham
  210. do jm = (in + 1),ntot
  211. * write(6,*) 'comp-champ-tes' , jm, lescom(jm), lecham(jm)
  212. if (lescom(jm).eq.moref) then
  213. if (moref.eq.'EPAI'.and.imagn.ne.0) go to 874
  214. if((moref.eq.'QSUP'.or. moref.eq.'QINF').and.
  215. & ithe.ne.0) go to 874
  216. if(moref.eq.'T ') go to 874
  217. moterr(1:8) = moref
  218. moterr(9:16) = lecham(in)
  219. moterr(17:24) = lecham(jm)
  220. call erreur(913)
  221. endif
  222. enddo
  223. 874 continue
  224.  
  225. segsup nomlis
  226. return
  227. end
  228.  
  229.  
  230.  

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