Télécharger cpropg.eso

Retour à la liste

Numérotation des lignes :

cpropg
  1. C CPROPG SOURCE GOUNAND 21/06/02 21:15:32 11022
  2. SUBROUTINE CPROPG(PGPRO1,PGPRO2,
  3. $ PGCOUR,
  4. $ IMPR,IRET)
  5. IMPLICIT REAL*8 (A-H,O-Z)
  6. IMPLICIT INTEGER (I-N)
  7. C***********************************************************************
  8. C NOM : CPROPG
  9. C PROJET : Noyau linéaire NLIN
  10. C DESCRIPTION : Construit les coordonnées et poids pour des règles
  11. C d'intégration "produit conique" (conical product)
  12. C
  13. C LANGAGE : ESOPE
  14. C AUTEUR : Stéphane GOUNAND (CEA/DRN/DMT/SEMT/LTMF)
  15. C mél : gounand@semt2.smts.cea.fr
  16. C***********************************************************************
  17. C APPELES : -
  18. C APPELE PAR : INGATR, INGATE
  19. C***********************************************************************
  20. C ENTREES : PGPRO1, PGPRO2
  21. C ENTREES/SORTIES : PGCOUR (actif en *MOD)
  22. C SORTIES : -
  23. C CODE RETOUR (IRET) : = 0 si tout s'est bien passé
  24. C***********************************************************************
  25. C VERSION : v1, 14/06/2000, version initiale
  26. C HISTORIQUE : v1, 14/06/2000, création
  27. C HISTORIQUE :
  28. C HISTORIQUE :
  29. C***********************************************************************
  30. C Prière de PRENDRE LE TEMPS de compléter les commentaires
  31. C en cas de modification de ce sous-programme afin de faciliter
  32. C la maintenance !
  33. C***********************************************************************
  34.  
  35. -INC PPARAM
  36. -INC CCOPTIO
  37. -INC TNLIN
  38. *-INC SPOGAU
  39. POINTEUR PGCOUR.POGAU
  40. POINTEUR PGPRO1.POGAU
  41. POINTEUR PGPRO2.POGAU
  42. *
  43. INTEGER IMPR,IRET
  44. *
  45. INTEGER NBPG1,NBPG2,NBPGC
  46. INTEGER IBPG1,IBPG2,IBPGC
  47. INTEGER NDIML1,NDIML2,NDIMLC
  48. INTEGER IDIML1, IDIMLC
  49. *
  50. * Executable statements
  51. *
  52. IF (IMPR.GT.2) WRITE(IOIMP,*) 'Entrée dans cpropg.eso'
  53. SEGACT PGPRO1
  54. SEGACT PGPRO2
  55. NDIML1=PGPRO1.XCOPG(/1)
  56. NBPG1 =PGPRO1.XCOPG(/2)
  57. NDIML2=PGPRO2.XCOPG(/1)
  58. NBPG2 =PGPRO2.XCOPG(/2)
  59. NDIMLC=PGCOUR.XCOPG(/1)
  60. NBPGC =PGCOUR.XCOPG(/2)
  61. IF ((NDIML1+NDIML2).NE.NDIMLC) THEN
  62. WRITE(IOIMP,*) 'Err. dim. esp.'
  63. GOTO 9999
  64. ENDIF
  65. IF ((NBPG1*NBPG2).NE.NBPGC) THEN
  66. WRITE(IOIMP,*) 'Err. nb. noeud.'
  67. GOTO 9999
  68. ENDIF
  69. IF (NDIML2.NE.1) THEN
  70. WRITE(IOIMP,*) 'On veut la règle 2 sur un segment'
  71. GOTO 9999
  72. ENDIF
  73. IBPGC=0
  74. DO 1 IBPG2=1,NBPG2
  75. DO 12 IBPG1=1,NBPG1
  76. IBPGC=IBPGC+1
  77. IDIMLC=0
  78. DO 122 IDIML1=1,NDIML1
  79. IDIMLC=IDIMLC+1
  80. PGCOUR.XCOPG(IDIMLC,IBPGC)=
  81. $ PGPRO1.XCOPG(IDIML1,IBPG1)
  82. $ *(1.D0-PGPRO2.XCOPG(1,IBPG2))
  83. 122 CONTINUE
  84. IDIMLC=IDIMLC+1
  85. PGCOUR.XCOPG(IDIMLC,IBPGC)=
  86. $ PGPRO2.XCOPG(1,IBPG2)
  87. 124 CONTINUE
  88. PGCOUR.XPOPG(IBPGC)=PGPRO1.XPOPG(IBPG1)
  89. $ *PGPRO2.XPOPG(IBPG2)
  90. 12 CONTINUE
  91. 1 CONTINUE
  92. SEGDES PGPRO2
  93. SEGDES PGPRO1
  94. *
  95. * Normal termination
  96. *
  97. IRET=0
  98. RETURN
  99. *
  100. * Format handling
  101. *
  102. *
  103. * Error handling
  104. *
  105. 9999 CONTINUE
  106. IRET=1
  107. WRITE(IOIMP,*) 'An error was detected in subroutine cpropg'
  108. RETURN
  109. *
  110. * End of subroutine CPROPG
  111. *
  112. END
  113.  
  114.  
  115.  
  116.  
  117.  

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