Télécharger sugege.eso

Retour à la liste

Numérotation des lignes :

  1. C SUGEGE SOURCE CHAT 06/03/29 21:35:08 5360
  2. C
  3. C **********************************************************************
  4. C FICHIER : HEXOS.F
  5. C OBJET : RACCORD DE 2 MAILLAGES GRILLES.
  6. C FONCT. :
  7. C OBJET HEXOS : RACCORD DE 2 MAILLAGES SURFACIQUES (GRILLES)
  8. C
  9. C AUTEUR : O. STAB
  10. C DATE : 03.97
  11. C MODIFICATIONS :
  12. C AUTEUR, DATE, OBJET :
  13. C
  14. C
  15. C **********************************************************************
  16. C
  17. SUBROUTINE SUGEGE(DEN1,DEN2,DLONG,RAISON,NB,iarr)
  18. C **********************************************************************
  19. C OBJET SUGEGE : CALCULE LA RAISON ET LE NOMBRE DE TERMES D'UNE SUITE
  20. C OBJET GEOMETRIQUE
  21. C
  22. C EN ENTREE :
  23. C
  24. C DLONG : LONGUEUR TOTALE
  25. C DEN1 : TAILLE SOUHAITEE POUR LE DEBUT (OPTIONNEL 0.0)
  26. C DEN2 : " " " " " POUR LA FIN (OPTIONNEL 0.0)
  27. C NB : NOMBRE DE COUCHES SOUHAITEES (OPTIONNEL 0)
  28. C
  29. C EN SORTIE :
  30. C
  31. C NBCOUC : NOMBRE DE COUCHES SUPPLEMENTAIRES
  32. C RAISON : RAISON DE LA SUITE GEOMETRIQUE
  33. CS
  34. C REMARQUE : LES PARAMETRES NON FOURNIS DOIVENT ETRE MIS A 0.0 ou 0
  35. C **********************************************************************
  36. IMPLICIT INTEGER(I-N)
  37. IMPLICIT REAL*8(A-H,O-Z)
  38. INTEGER NB,iarr
  39. C
  40. REAL*8 X,Y,XYZEPS
  41. d1=den1/DLONG
  42. d2= den2/dlong
  43. CALL DECOUP( NB,D1,D2,RAISON,NBELEM,DE,DI,DLONG)
  44. DEN1=D1*DLONG
  45. DEN2=D2*DLONG
  46. NB=NBELEM
  47. RETURN
  48. C
  49. C COMMON /CGEPSI/ XYZHUG,XYZMIN,XYZEPS
  50. C REAL*8 XYZHUG,XYZMIN,XYZEPS
  51. C
  52. C XYZEPS = 1.19209290E-07
  53. C
  54. C XYZEPS=1.d-10
  55. C iarr = 0
  56. C IF( NB.EQ. 0 )THEN
  57. C ===============
  58. C ==== CALCUL DE NB ====
  59. C ===============
  60. C IF(( DEN1.LE.XYZEPS ).AND.( DEN1.GE. -XYZEPS))THEN
  61. C RAISON = 1.0
  62. C IF(( DEN2.LE.XYZEPS ).AND.( DEN2.GE. -XYZEPS))THEN
  63. C NB = 1
  64. C ELSE
  65. C NB = ( DLONG / DEN2 )
  66. C ENDIF
  67. C ELSE
  68. C ---- DEN1 != 0 ----
  69. C IF(( DEN2.LE.XYZEPS ).AND.( DEN2.GE. -XYZEPS))THEN
  70. C RAISON = 1.0
  71. C NB = ( DLONG / DEN1 )
  72. C ELSE
  73. C ---- DEN1 != 0 ET DEN2 != 0 ----
  74. C X = LOG(DLONG + DEN2)-LOG(DLONG + DEN1)
  75. C IF((DEN1.GE.DLONG-XYZEPS).OR.(DEN2.GE.DLONG-XYZEPS))THEN
  76. C X = 0.0
  77. C ELSE
  78. C X = LOG(DLONG - DEN1)-LOG(DLONG - DEN2)
  79. C ENDIF
  80. C IF( (X.LE.XYZEPS).AND.(X.GE.-XYZEPS) )THEN
  81. C RAISON = 1.0
  82. C NB = (2 * DLONG / (DEN1+DEN2))
  83. C ELSE
  84. C RAISON = ( DLONG - DEN1 ) / ( DLONG - DEN2 )
  85. C Y = LOG(DEN2) - LOG(DEN1)
  86. C X = (Y / X) + 1.0
  87. C NB = NINT(X)
  88. C X = (DEN2/DEN1)**(1.0 / (NB-1))
  89. C ENDIF
  90. C ENDIF
  91. C ENDIF
  92. C ELSE
  93. C ===============
  94. C ==== NB EST DONNE ====
  95. C ===============
  96. C IF(( DEN1.LE.XYZEPS ).AND.( DEN1.GE. -XYZEPS))THEN
  97. C IF(( DEN2.LE.XYZEPS ).AND.( DEN2.GE. -XYZEPS))THEN
  98. C RAISON = 1.0
  99. C ELSE
  100. C iarr = -3
  101. C RAISON = 0
  102. C ENDIF
  103. C ELSE
  104. C ---- DEN1 != 0 ----
  105. C IF(( DEN2.LE.XYZEPS ).AND.( DEN2.GE. -XYZEPS))THEN
  106. C iarr = -3
  107. C RAISON = 0
  108. C ELSE
  109. C ---- DEN1 != 0 ET DEN2 != 0 ----
  110. C IF((DEN1.GE.DLONG-XYZEPS).OR.(DEN2.GE.DLONG-XYZEPS))THEN
  111. C X = 0.0
  112. C ELSE
  113. C X = LOG(DLONG - DEN1)-LOG(DLONG - DEN2)
  114. C ENDIF
  115. C IF( (X.LE.XYZEPS).AND.(X.GE.-XYZEPS) )THEN
  116. C RAISON = 1.0
  117. C ELSE
  118. C RAISON = ( DLONG - DEN1 ) / ( DLONG - DEN2 )
  119. C Y = LOG(DEN2) - LOG(DEN1)
  120. C X = (Y / X) + 1.0
  121. C
  122. CC RAISON = (DEN2/DEN1)**(1.0 / (NB-1))
  123. C ENDIF
  124. C ENDIF
  125. C ENDIF
  126. C ENDIF
  127. C
  128. 9999 END
  129.  
  130.  
  131.  
  132.  

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