Télécharger surfp5.eso

Retour à la liste

Numérotation des lignes :

surfp5
  1. C SURFP5 SOURCE PV 07/11/23 21:19:35 5978
  2. SUBROUTINE SURFP5 (FER,XPROJ,NDEB,msurfp)
  3. ************************************************************************
  4. *
  5. * S U R F P 5
  6. * -----------
  7. *
  8. * FONCTION:
  9. * ---------
  10. *
  11. * HOMOLOGUE DE "PPLAN", "PCYLI" ET CIE, AVEC L'OPTION IOP=1,
  12. * UTILISE DANS LE CAS DU TRAITEMENT D'UNE SURFACE AVEC L'OPTION
  13. * "POLYNOME".
  14. *
  15. * MODULES UTILISES:
  16. * -----------------
  17. *
  18. IMPLICIT REAL*8(A-H,O-Z)
  19. IMPLICIT INTEGER(I-N)
  20.  
  21. -INC PPARAM
  22. -INC CCOPTIO
  23. -INC TMSURFP
  24. *
  25. * PARAMETRES: (E)=ENTREE (S)=SORTIE (+ = CONTENU DANS UN COMMUN)
  26. * -----------
  27. *
  28. * FER (E) SEGMENT SUPPOSE ACTIF.
  29. * NFI (E) NUMEROS DES NOEUDS DU CONTOUR DE LA SURFACE, DANS
  30. * L'ORDRE SUIVANT:
  31. * 1. NUMEROS DES POINTS-MILIEUX (SI "SEG3"),
  32. * 2. NUMEROS DES POINTS-EXTREMITES DES SEGMENTS DU
  33. * CONTOUR.
  34. * 3. NUMERO DU 1ER POINT-EXTREMITE (FERMETURE DU
  35. * CONTOUR ?).
  36. * (S) LES NUMEROS DES POINTS-EXTREMITES SONT REMPLACES PAR
  37. * LA PLACE DE CES POINTS DANS "XPROJ".
  38. * MAI (E) MAI(1) = NOMBRE DE POINTS-MILIEUX DU CONTOUR.
  39. * MAI(1+ITOUR) = NOMBRE DE POINTS DU CONTOUR.
  40. * ITOUR (E) NOMBRE DE CONTOURS (= 1 ACTUELLEMENT POUR LES
  41. * SURFACES PARAMETREES).
  42. * NDEB (S) NOMBRE DE POINTS DU CONTOUR + 1 .
  43. * XPROJ (S) COORDONNEES PARAMETRIQUES DES POINTS-EXTREMITES DES
  44. * SEGMENTS DU CONTOUR.
  45. * ELLES SONT RANGEES A PARTIR DE LA PLACE "N+1", "N"
  46. * ETANT LE NOMBRE DE POINTS-MILIEUX.
  47. * +MSURFP (E) POINTEUR DE SURFACE PARAMETREE.
  48. *
  49. SEGMENT /FER/(NFI(ITT),MAI(IPP),ITOUR)
  50. SEGMENT XPROJ(3,IMAX)
  51. *
  52. * VARIABLES:
  53. * ----------
  54. *
  55. * IMCT = NOMBRE DE NOEUDS DU CONTOUR (1 SEUL CONTOUR POUR UNE
  56. * SURFACE PARAMETREE), POINTS-MILIEUX COMPRIS.
  57. * INCT = PLACE DU 1ER POINT-EXTREMITE DU CONTOUR DANS "NFI".
  58. *
  59. INTEGER IMCT,INCT
  60. *
  61. * AUTEUR, DATE DE CREATION:
  62. * -------------------------
  63. *
  64. * PASCAL MANIGOT 26 FEVRIER 1987
  65. *
  66. * LANGAGE:
  67. * --------
  68. *
  69. * ESOPE77 FORTRAN77
  70. *
  71. ************************************************************************
  72. *
  73. IF (ITOUR .NE. 1) THEN
  74. CALL ERREUR(5)
  75. RETURN
  76. END IF
  77. *
  78. IMCT=MAI(ITOUR+1)
  79. INCT=MAI(1)+1
  80. IMAX=(IMCT**2)+10
  81. *
  82. NDEB=IMCT+1
  83. SEGINI XPROJ
  84. SEGACT,MSURFP*MOD
  85. MUVSUR = IUVSUR
  86. SEGACT,MUVSUR*MOD
  87. *
  88. N0 = NU0SUR
  89. DO 100 I=INCT,max(IMCT,mai(itour+2))
  90. II=NFI(I)
  91. NFI(I)=I
  92. XPROJ(1,I) = USUR(II-N0)
  93. XPROJ(2,I) = VSUR(II-N0)
  94. 100 CONTINUE
  95. * END DO
  96. *
  97. * CALCUL DES DENSITES GRACE AUX DISTANCES AVEC LES VOISINS:
  98. * (NE FONCTIONNE PAS DU TOUT AVEC PLUSIEURS CONTOURS)
  99. *
  100. IF (INCT .LE. IMCT) THEN
  101. D3 = (XPROJ(1,IMCT) - XPROJ(1,INCT) )**2
  102. & + (XPROJ(2,IMCT) - XPROJ(2,INCT) )**2
  103. D3 = SQRT(D3)
  104. DO 110 I=INCT,IMCT
  105. IF (I .EQ. IMCT) THEN
  106. I3 = INCT
  107. ELSE
  108. I3 = I + 1
  109. END IF
  110. D1 = D3
  111. D3 = (XPROJ(1,I3) - XPROJ(1,I) )**2
  112. & + (XPROJ(2,I3) - XPROJ(2,I) )**2
  113. D3 = SQRT(D3)
  114. XPROJ(3,I) = (D1 + D3) / 2.
  115. 110 CONTINUE
  116. * END DO
  117. END IF
  118. *
  119. IF (IIMPI.EQ.1804) THEN
  120. DO 120 I=INCT,IMCT
  121. WRITE(IOIMP,'(I5,3(2X,G12.5))')I,XPROJ(1,I),XPROJ(2,I),
  122. & XPROJ(3,I)
  123. 120 CONTINUE
  124. * END DO
  125. END IF
  126. *
  127. SEGDES,MUVSUR,MSURFP
  128. *
  129. END
  130.  
  131.  
  132.  
  133.  
  134.  

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