Télécharger resimo.eso

Retour à la liste

Numérotation des lignes :

resimo
  1. C RESIMO SOURCE OF166741 24/12/18 21:15:30 12090
  2.  
  3. *--------------------------------------------------------------------*
  4. * *
  5. * Restauration d'un pointeur IMODEL *
  6. * *
  7. *--------------------------------------------------------------------*
  8.  
  9. SUBROUTINE RESIMO (ICOLAC,IMODEL,NIVEAU)
  10.  
  11. IMPLICIT INTEGER(I-N)
  12. IMPLICIT REAL*8 (A-H,O-Z)
  13.  
  14. -INC PPARAM
  15. -INC CCOPTIO
  16.  
  17. -INC SMMODEL
  18.  
  19. -INC TMCOLAC
  20.  
  21. EXTERNAL LONG
  22. CHARACTER*(8) ityp1,MOTa
  23. CHARACTER*(lOCHAI) m_libe,m_mode
  24. LOGICAL b_z
  25.  
  26. c-dbg write(ioimp,*) 'ENTREE DANS RESIMO :',IMODEL
  27.  
  28. ITLAC1 = icolac.KCOLA(1)
  29. ITLAC2 = icolac.KCOLA(10)
  30. ITLAC3 = icolac.KCOLA(40)
  31. ITLAC4 = icolac.KCOLA(29)
  32.  
  33. SEGACT,IMODEL*MOD
  34.  
  35. NFOR = imodel.FORMOD(/2)
  36. NMAT = imodel.MATMOD(/2)
  37. MN3 = imodel.INFMOD(/1)
  38. NOBMOD = imodel.IVAMOD(/1)
  39.  
  40. C* Cas Bizarre NFOR=0 !
  41. if (NFOR.eq.0) then
  42. write(ioimp,*) 'RESIMO : NFOR = 0 !'
  43. call erreur(5)
  44. endif
  45. if (MN3.lt.1) then
  46. write(ioimp,*) 'RESMMO : MN3 = INFMOD(/1) < 1'
  47. call erreur(5)
  48. endif
  49.  
  50. IVA = imodel.IMAMOD
  51. IF (IVA.LT.0) imodel.IMAMOD = ITLAC1.ITLAC(ABS(IVA))
  52.  
  53. C Point support DEFO.GENE.
  54. IVA = imodel.IPDPGE
  55. IF (IVA.LT.0) imodel.IPDPGE = ITLAC1.ITLAC(ABS(IVA))
  56.  
  57. C Dans le cas 'MECANIQUE_DES_FLUIDES' : INFMOD(2) contient une table
  58. IF (MN3.GT.1) THEN
  59. IVA = imodel.INFMOD(2)
  60. IF (IVA.LT.0) imodel.INFMOD(2) = ITLAC2.ITLAC(ABS(IVA))
  61. ENDIF
  62.  
  63. DO io = 3, MN3
  64. if (io.ne.9.and.io.ne.13) then
  65. iva = imodel.INFMOD(io)
  66. IF (iva.LT.0) THEn
  67. if (io.eq.14) then
  68. imodel.INFMOD(io) = ITLAC4.ITLAC(ABS(iva))
  69. else
  70. imodel.INFMOD(io) = ITLAC3.ITLAC(ABS(iva))
  71. endif
  72. ENDIF
  73. endif
  74. ENDDO
  75.  
  76. DO io = 1, NOBMOD
  77. ityp1 = imodel.tymode(io)
  78. CALL TYPFIL(ityp1,j)
  79. if (j.gt.0) then
  80. itlac5 = icolac.KCOLA(j)
  81. iva = imodel.ivamod(io)
  82. if (iva.lt.0) imodel.ivamod(io) = itlac5.itlac(abs(iva))
  83. endif
  84. ENDDO
  85.  
  86. if (NFOR.eq.1) then
  87. if (NOBMOD.eq.0) goto 200
  88. if (imodel.INATUU.ge.0) goto 200
  89.  
  90. noblib = 0
  91. DO io = 1, NOBMOD
  92. IF (imodel.TYMODE(io).EQ.'MOT ') THEN
  93. iva = imodel.IVAMOD(io)
  94. CALL QUEVAL(iva,'MOT ',ier,lgmot,r_z,MOTa,b_z,i_z)
  95. IF (ier.NE.0) CALL ERREUR(5)
  96. IF (MOTa.EQ.'LMEEXT ' .AND.
  97. & (imodel.formod(1).EQ.'MECANIQUE '.OR.
  98. & imodel.formod(1).EQ.'POREUX ') ) THEN
  99. noblib = io+1
  100. imoLib = imodel.ivamod(io+2)
  101. imoFct = imodel.ivamod(io+3)
  102. GOTO 220
  103. ELSE IF (MOTa.EQ.'LDIEXT ' .AND.
  104. & imodel.FORMOD(1).EQ.'DIFFUSION ') THEN
  105. noblib = io+1
  106. imoLib = imodel.ivamod(io+2)
  107. imoFct = imodel.ivamod(io+3)
  108. GOTO 220
  109. ENDIF
  110. ENDIF
  111. ENDDO
  112. 220 CONTINUE
  113. IF (noblib.LE.0) GOTO 200
  114.  
  115. CALL QUEVAL(imoLib,'MOT',ier,lli,r_z,m_libe,b_z,i_z)
  116. IF (ier .NE. 0) CALL ERREUR(5)
  117. CALL QUEVAL(imoFct,'MOT',ier,lmo,r_z,m_mode,b_z,i_z)
  118. IF (ier .NE. 0) CALL ERREUR(5)
  119. imodel.ivamod(noblib) = 0
  120. i_z = -1
  121. CALL LEXTOP(m_libe,m_mode,i_z,m_iloi,m_ptre)
  122. if (m_iloi.gt.0) imodel.ivamod(noblib) = m_ptre
  123. lli = LONG(m_libe)
  124. CALL POSCHA(m_libe(1:lli),imoLib)
  125. imodel.ivamod(noblib+1) = imoLib
  126. lmo = LONG(m_mode)
  127. CALL POSCHA(m_mode(1:lmo),imoFct)
  128. imodel.ivamod(noblib+2) = imoFct
  129.  
  130. 200 continue
  131. endif
  132.  
  133. SEGDES,IMODEL
  134.  
  135. RETURN
  136. END
  137.  
  138.  
  139.  

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