Télécharger jnsn.eso

Retour à la liste

Numérotation des lignes :

jnsn
  1. C JNSN SOURCE CB215821 22/11/16 21:15:03 11500
  2. C JHNSON SOURCE CB215821 16/04/21 21:17:19 8920
  3. Subroutine JNSN(Xbar,Sd,RB1,BB2,Itype,Gamma,Delta,Xlam,Xi,
  4. * IFault)
  5. IMPLICIT INTEGER(I-N)
  6. IMPLICIT REAL*8 (A-H,O-Z)
  7. REAL*8 Xbar,Sd,RB1,BB2,Gamma,Delta,Xlam,Xi,Tol,
  8. * B1,B2,Y,X,U,W
  9. LOGICAL fault
  10. DATA Tol /0.01D0/
  11. IFault = 1
  12. C
  13. C Ecart-type plus petit que 0 --> IMPOSSIBLE
  14. C
  15. IF (Sd.LT.0.D0) RETURN
  16. C
  17. C Initialisation
  18. C
  19. IFault = 0
  20. Xi = 0.D0
  21. Xlam = 0.D0
  22. Gamma = 0.D0
  23. Delta = 0.D0
  24. C
  25. C Ecart-type = 0 --> Distribution de type 5 : type St
  26. C
  27. IF (Sd.GT.0.D0) GOTO 10
  28. IType = 5
  29. Xi = Xbar
  30. RETURN
  31. C
  32. C Calcul de Beta_1 et Beta_2
  33. C
  34. 10 B1 = RB1 * RB1
  35. B2 = BB2
  36. fault = .FALSE.
  37. C
  38. C Voir si une distribution lognormale est demandee
  39. C
  40. IF (B2.GE.0.D0) GOTO 30
  41. 20 IF (ABS(RB1).LE.Tol) GOTO 70
  42. GOTO 80
  43. C
  44. C Position par rapport aux frontieres du domaine
  45. C
  46. C domaine superieur
  47. C
  48. 30 IF (B2.GT.(B1 + Tol + 1.D0)) GOTO 60
  49. C
  50. C domaine impossible
  51. C
  52. IF (B2.LT.B1 + 1.D0) GOTO 50
  53. C
  54. C Distribution St
  55. C
  56. 40 IType = 5
  57. Y = 0.5D0 + 0.5D0 * SQRT(1.D0 - 4.D0/(B1 + 4.D0))
  58. IF (RB1.GT.0.D0) Y = 1.D0 - Y
  59. X = Sd / SQRT(Y*(1.D0 - Y))
  60. Xi = Xbar - Y * X
  61. Xlam = Xi + X
  62. Delta = Y
  63. RETURN
  64. 50 IFault = 2
  65. Itype = 6
  66. RETURN
  67. 60 IF (ABS(RB1).GT.Tol.OR.ABS(B2 - 3.D0).GT.Tol) GOTO 80
  68. C
  69. C Distribution Normale
  70. C
  71. 70 IType = 4
  72. Delta = 1.D0 / Sd
  73. Gamma = - Xbar / Sd
  74. RETURN
  75. C
  76. C Test de position par rapport a la droite log-normale
  77. C
  78. 80 U = 1.D0 / 3.D0
  79. X = 0.5D0 * B1 + 1.D0
  80. Y = RB1 * SQRT(0.25D0 * B1 + 1.D0)
  81. W = (X + Y) ** U + (X - Y) ** U - 1.D0
  82. U = W * W * (3.D0 + W * (2.D0 + W)) - 3.D0
  83. IF (B2.LT.0.D0.OR.fault) B2 = U
  84. X = U - B2
  85. IF (ABS(X).GT.TOL) GOTO 90
  86. C
  87. C Distribution Log-Normale
  88. C
  89. IType = 1
  90. Xlam = SIGN(1.D0,rb1)
  91. U = Xlam * Xbar
  92. X = 1.D0 / SQRT(LOG(W))
  93. Delta = X
  94. Y = 0.5D0 * X * LOG(W * (W - 1.D0) / (Sd * Sd))
  95. Gamma = Y
  96. Xi = U - EXP((0.5D0 / X - Y) /X)
  97. RETURN
  98. C
  99. C Distribution Sb ou Su
  100. C
  101. 90 IF (X.GT.0.D0) GOTO 100
  102. ITYPE = 2
  103. CALL SU(Xbar,Sd,RB1,B2,Gamma,Delta,Xlam,Xi)
  104. RETURN
  105. 100 ITYPE = 3
  106. CALL SB(Xbar,Sd,RB1,B2,Gamma,Delta,Xlam,Xi,FAULT)
  107. IF(.NOT.FAULT) RETURN
  108. C
  109. C Echec. Convergence non atteinte. Perturbation des param
  110. C
  111. IFAULT = 3
  112. IF (B2.GT.B1 + 2.D0) GOTO 20
  113. GOTO 40
  114. END
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  

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