Télécharger prlin4.eso

Retour à la liste

Numérotation des lignes :

prlin4
  1. C PRLIN4 SOURCE GOUNAND 21/06/02 21:17:28 11022
  2. SUBROUTINE PRLIN4(TABVDC,TATRAV,
  3. $ IMPR,IRET)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. IMPLICIT INTEGER (I-N)
  6. C***********************************************************************
  7. C NOM : PRLIN4
  8. C DESCRIPTION :
  9. * Dans PRLIN4, on explicite ce que l'on va vraiment devoir
  10. * calculer dans TATRAV
  11. C
  12. C LANGAGE : ESOPE
  13. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  14. C mél : gounand@semt2.smts.cea.fr
  15. C***********************************************************************
  16. C APPELES :
  17. C APPELE PAR : PRLIN2
  18. C***********************************************************************
  19. C ENTREES :
  20. C SORTIES :
  21. C TRAVAIL :
  22. C
  23. C***********************************************************************
  24. C VERSION : v1, 19/12/2005, version initiale
  25. C HISTORIQUE : v1, 19/12/2005, création
  26. C HISTORIQUE :
  27. C HISTORIQUE :
  28. C***********************************************************************
  29. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  30. C en cas de modification de ce sous-programme afin de faciliter
  31. C la maintenance !
  32. C***********************************************************************
  33.  
  34. -INC PPARAM
  35. -INC CCOPTIO
  36. -INC TNLIN
  37. *-INC SLCOMP
  38. POINTEUR MYCOMP.COMP
  39. -INC SMLENTI
  40. POINTEUR LDAT.MLENTI
  41. POINTEUR POWCOF.MLENTI
  42. *-INC SMTNLIN
  43. *
  44. INTEGER IMPR,IRET
  45. *
  46. *
  47. * Executable statements
  48. *
  49. IF (IMPR.GT.1) WRITE(IOIMP,*) 'Entrée dans prlin4'
  50. SEGACT TABVDC
  51. SEGACT TATRAV*MOD
  52. NUMVPR=TABVDC.VVARPR(/1)
  53. NUMVDU=TABVDC.VVARDU(/1)
  54. NUMDER=TABVDC.ILCPR(/1)-1
  55. NUMOP=TABVDC.ILCPR(/2)
  56. JLCOF=TATRAV.VVCOF(/1)
  57. * Mises à zéro préalables
  58. JGCOF=TATRAV.LVCOF(/1)
  59. DO IJGCOF=1,JGCOF
  60. TATRAV.LVCOF(IJGCOF)=.FALSE.
  61. ENDDO
  62. JGVD=TATRAV.LVD(/1)
  63. DO IJGVD=1,JGVD
  64. TATRAV.LVD(IJGVD)=.FALSE.
  65. TATRAV.LDVD(IJGVD)=.FALSE.
  66. ENDDO
  67. KGVD=TATRAV.LFFVD(/1)
  68. DO IKGVD=1,KGVD
  69. TATRAV.LFFVD(IKGVD)=.FALSE.
  70. TATRAV.LDFFVD(IKGVD)=.FALSE.
  71. ENDDO
  72. *
  73. * Que va-t-on devoir calculer ? On le tagge a 1.
  74. * Parmi les coeffs
  75. DO IJLCOF=1,JLCOF
  76. POWCOF=TABVDC.VLCOF(IJLCOF)
  77. SEGACT POWCOF
  78. DO IPC=1,POWCOF.LECT(/1)
  79. IPOW=POWCOF.LECT(IPC)
  80. IF (IPOW.NE.0) THEN
  81. TATRAV.LVCOF(IPC)=.TRUE.
  82. ENDIF
  83. ENDDO
  84. SEGDES POWCOF
  85. ENDDO
  86. * Parmi les datas et leurs dérivées
  87. DO IJGCOF=1,JGCOF
  88. IF (TATRAV.LVCOF(IJGCOF).EQV..TRUE.) THEN
  89. MYCOMP=TABVDC.VCOMP(IJGCOF)
  90. LDAT =TABVDC.VLDAT(IJGCOF)
  91. SEGACT MYCOMP
  92. NDAT=MYCOMP.DERCOF(/1)
  93. SEGACT LDAT
  94. DO IDAT=1,NDAT
  95. LDER =MYCOMP.DERCOF(IDAT)
  96. IJGVD=LDAT.LECT(IDAT)
  97. * IKGVD=TABVDC.DJSVD(IJGVD)
  98. IF (LDER.EQ.0) THEN
  99. TATRAV.LVD(IJGVD)=.TRUE.
  100. * TATRAV.LFFVD(IKGVD)=.TRUE.
  101. ELSEIF (LDER.EQ.1) THEN
  102. TATRAV.LDVD(IJGVD)=.TRUE.
  103. * TATRAV.LDFFVD(IKGVD)=.TRUE.
  104. ELSEIF (LDER.EQ.2) THEN
  105. TATRAV.LVD(IJGVD)=.TRUE.
  106. * TATRAV.LFFVD(IKGVD)=.TRUE.
  107. TATRAV.LDVD(IJGVD)=.TRUE.
  108. * TATRAV.LDFFVD(IKGVD)=.TRUE.
  109. ELSE
  110. WRITE(IOIMP,*) 'Erreur grave 1'
  111. GOTO 9999
  112. ENDIF
  113. ENDDO
  114. SEGDES LDAT
  115. SEGDES MYCOMP
  116. ENDIF
  117. ENDDO
  118. * Parmi les variables et leurs dérivées
  119. DO IOP=1,NUMOP
  120. DO IDER=0,NUMDER
  121. DO IVARPR=1,NUMVPR
  122. IILCPR=TABVDC.ILCPR(IDER+1,IOP,IVARPR)
  123. IF (IILCPR.NE.0) THEN
  124. IJGVD=TABVDC.VVARPR(IVARPR)
  125. IF (IDER.EQ.0) THEN
  126. TATRAV.LVD(IJGVD)=.TRUE.
  127. ELSE
  128. TATRAV.LDVD(IJGVD)=.TRUE.
  129. ENDIF
  130. ENDIF
  131. ENDDO
  132. DO IVARDU=1,NUMVDU
  133. IILCDU=TABVDC.ILCDU(IDER+1,IOP,IVARDU)
  134. IF (IILCDU.NE.0) THEN
  135. IJGVD=TABVDC.VVARDU(IVARDU)
  136. IF (IDER.EQ.0) THEN
  137. TATRAV.LVD(IJGVD)=.TRUE.
  138. ELSE
  139. TATRAV.LDVD(IJGVD)=.TRUE.
  140. ENDIF
  141. ENDIF
  142. ENDDO
  143. ENDDO
  144. ENDDO
  145. * Parmi les fonctions de forme
  146. DO IJGVD=1,JGVD
  147. IF (TATRAV.LVD(IJGVD).EQV..TRUE.) THEN
  148. IKGVD=TABVDC.DJSVD(IJGVD)
  149. TATRAV.LFFVD(IKGVD)=.TRUE.
  150. IF (TABVDC.MVD(IJGVD).EQ.0) THEN
  151. TATRAV.LVD(IJGVD)=.FALSE.
  152. ENDIF
  153. ENDIF
  154. IF (TATRAV.LDVD(IJGVD).EQV..TRUE.) THEN
  155. IKGVD=TABVDC.DJSVD(IJGVD)
  156. TATRAV.LDFFVD(IKGVD)=.TRUE.
  157. IF (TABVDC.MVD(IJGVD).EQ.0) THEN
  158. TATRAV.LDVD(IJGVD)=.FALSE.
  159. ENDIF
  160. ENDIF
  161. ENDDO
  162. *
  163. * Fin...
  164. *
  165. SEGDES,TATRAV
  166. SEGDES,TABVDC
  167. *
  168. * Normal termination
  169. *
  170. IRET=0
  171. RETURN
  172. *
  173. * Format handling
  174. *
  175. *
  176. * Error handling
  177. *
  178. 9999 CONTINUE
  179. IRET=1
  180. WRITE(IOIMP,*) 'An error was detected in subroutine prlin4'
  181. RETURN
  182. *
  183. * End of subroutine PRLIN4
  184. *
  185. END
  186.  
  187.  
  188.  
  189.  
  190.  

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