Télécharger prlrf.eso

Retour à la liste

Numérotation des lignes :

  1. C PRLRF SOURCE GOUNAND 05/12/21 21:35:38 5281
  2. SUBROUTINE PRLRF(LRF,
  3. $ IMPR,IRET)
  4. IMPLICIT REAL*8 (A-H,O-Z)
  5. IMPLICIT INTEGER (I-N)
  6. C***********************************************************************
  7. C NOM : PRLRF
  8. C PROJET : Noyau linéaire NLIN
  9. C DESCRIPTION : Imprime un segment décrivant un élément de référence.
  10. C LANGAGE : ESOPE
  11. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  12. C mél : gounand@semt2.smts.cea.fr
  13. C***********************************************************************
  14. C APPELES : PRBPOL
  15. C APPELES (E/S) : OOOETA
  16. C APPELE PAR : INLRFS
  17. C***********************************************************************
  18. C ENTREES : LRF
  19. C ENTREES/SORTIES : -
  20. C SORTIES : -
  21. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  22. C***********************************************************************
  23. C VERSION : v1, 20/07/99, version initiale
  24. C HISTORIQUE : v1, 20/07/99, création
  25. C HISTORIQUE : v2, 10/05/00, modif. du segment ELREF
  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. -INC CCOPTIO
  34. CBEGININCLUDE SELREF
  35. SEGMENT ELREF
  36. CHARACTER*(LNNOM) NOMLRF
  37. CHARACTER*(LNFORM) FORME
  38. CHARACTER*(LNTYPL) TYPEL
  39. CHARACTER*(LNESP) ESPACE
  40. INTEGER DEGRE
  41. REAL*8 XCONOD(NDIMEL,NBNOD)
  42. INTEGER NPQUAF(NBDDL)
  43. INTEGER NUMCMP(NBDDL)
  44. INTEGER QUENOD(NBDDL)
  45. INTEGER ORDDER(NDIMEL,NBDDL)
  46. POINTEUR MBPOLY.POLYNS
  47. ENDSEGMENT
  48. SEGMENT ELREFS
  49. POINTEUR LISEL(0).ELREF
  50. ENDSEGMENT
  51. CENDINCLUDE SELREF
  52. POINTEUR LRF.ELREF
  53. CBEGININCLUDE SPOLYNO
  54. SEGMENT POLYNO
  55. REAL*8 COEMON(NBMON)
  56. INTEGER EXPMON(NDIML,NBMON)
  57. ENDSEGMENT
  58. SEGMENT POLYNS
  59. POINTEUR LIPOLY(NBPOLY).POLYNO
  60. ENDSEGMENT
  61. CENDINCLUDE SPOLYNO
  62. POINTEUR MYBPOL.POLYNS
  63. *
  64. INTEGER IMPR,IRET
  65. *
  66. INTEGER LRFETA
  67. INTEGER INDIM,INBNO,IDDL
  68. INTEGER IINBNO,IND,IIDDL
  69. *
  70. * Executable statements
  71. *
  72. CALL OOOETA(LRF,LRFETA)
  73. IF (LRFETA.NE.1) SEGACT LRF
  74. WRITE(IOIMP,*) 'Segment ELREF de pointeur',LRF
  75. IF (IMPR.GT.1) THEN
  76. WRITE(IOIMP,*) 'Nom : ',LRF.NOMLRF
  77. IF (IMPR.GT.2) THEN
  78. WRITE(IOIMP,*) 'Forme : ',LRF.FORME
  79. WRITE(IOIMP,*) 'Type d''élément : ',LRF.TYPEL
  80. WRITE(IOIMP,*) 'Esp. discr. inconnue : ',LRF.ESPACE
  81. INDIM=LRF.XCONOD(/1)
  82. INBNO=LRF.XCONOD(/2)
  83. WRITE(IOIMP,*) 'Dim. esp. référence : ',INDIM
  84. WRITE(IOIMP,*) 'Nb. noeuds approx. : ',INBNO
  85. IF (IMPR.GT.3) THEN
  86. WRITE(IOIMP,*) 'Coordonnées des noeuds d''approximation:'
  87. DO 1 IINBNO=1,INBNO
  88. WRITE(IOIMP,4005)
  89. $ IINBNO,(LRF.XCONOD(IND,IINBNO),IND=1,INDIM)
  90. 1 CONTINUE
  91. ENDIF
  92. WRITE(IOIMP,*) 'Degré de l''approx. : ',LRF.DEGRE
  93. IDDL=LRF.NPQUAF(/1)
  94. WRITE(IOIMP,*) 'Nb.degrés de liberté : ',IDDL
  95. IF (IMPR.GT.3) THEN
  96. WRITE(IOIMP,*) 'Pour chaque ddl, num. noeud du QUAF<=>',
  97. $ 'forme ET num. comp. dans les champs : '
  98. WRITE(IOIMP,4006)
  99. $ (LRF.NPQUAF(IIDDL),IIDDL=1,IDDL)
  100. WRITE(IOIMP,4007)
  101. $ (LRF.NUMCMP(IIDDL),IIDDL=1,IDDL)
  102. WRITE(IOIMP,*) 'On ne liste pas QUENOD et ORDDER'
  103. MYBPOL=LRF.MBPOLY
  104. IF (MYBPOL.EQ.0) THEN
  105. WRITE(IOIMP,*) 'Pas de base polynomiale'
  106. ELSE
  107. CALL PRBPOL(MYBPOL,IMPR,IRET)
  108. IF (IRET.NE.0) GOTO 9999
  109. ENDIF
  110. ENDIF
  111. ENDIF
  112. ENDIF
  113. *! WRITE(IOIMP,4004) LRF.NOMLRF,LRF.FORME,LRF.ESPACE,LRF.DEGRE,
  114. *! $ LRF.NPQUAF(/1)
  115. IF (LRFETA.NE.1) SEGDES LRF
  116. *
  117. * Normal termination
  118. *
  119. IRET=0
  120. RETURN
  121. *
  122. * Format handling
  123. *
  124. 4004 FORMAT (A10,' ',A20,' ',A5,' ',I5,' ',I5)
  125. 4005 FORMAT (2X,'Point ',I6,' :',6(1X,1PE24.16))
  126. 4006 FORMAT (2X,'Num.noeud :',9(1X,I6))
  127. 4007 FORMAT (2X,'Num.comp :',9(1X,I6))
  128. *
  129. * Error handling
  130. *
  131. 9999 CONTINUE
  132. IRET=1
  133. WRITE(IOIMP,*) 'An error was detected in subroutine prlrf'
  134. RETURN
  135. *
  136. * End of subroutine prlrf
  137. *
  138. END
  139.  
  140.  
  141.  
  142.  

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