Download bant2D.eso

Back to the list

   1 : C BANT2D    SOURCE    CHAT      05/01/12    21:32:08     5004           
   2 :       SUBROUTINE BANT2D(DOMEGA,OMMAX,DELZET,ZETMIN,XLINE)
   3 : C                                                                       
   4 : C-----------------------------------------------------------------------
   5 : C                                                                       
   6 : C      THIS SUBROUTINE GENERATES A CORRELATED RANDOM LINE PROCESS       
   7 : C      USING THE METHODS OF RICE (1954); SHINOZUKA AND JAN (1972)       
   8 : C      2D CASE 2D CASE 2D CASE 2D CASE 2D CASE 2D CASE 2D CASE
   9 : C                                                                       
  10 : C-----------------------------------------------------------------------
  11 : C
  12 : C---------------------------
  13 : C Paramètres Entrée/Sortie :
  14 : C---------------------------
  15 : C
  16 : C E/  DOMEGA : Pas de discrétisation des vecteurs d'onde (Non normalisé)
  17 : C E/  OMMAX  : Vecteur d'onde de coupure (adimensionné par lambda)
  18 : C E/  DELZET : Longueur minimale de description des hétérogénéités
  19 : C E/  ZETMIN : Abscisse curviligne minimale des projections des points
  20 : C              sur la ligne
  21 : C
  22 : C  /S XLINE  : Segment contenant les valeurs de la simulation sur la
  23 : C              ligne
  24 : C
  25 : C--------------------------
  26 : C Variables internes      :
  27 : C--------------------------
  28 : C
  29 : C M          : Nombre de vecteurs d'onde par bande
  30 : C OMK        : 'omega_k', vecteur d'onde d'indice k
  31 : C OMPRIK     : 'omega_k' + petite variation aléatoire
  32 : C SSK        : 'ss_k', 2 fois le module d'indice k du coef. de Fourier 
  33 : C               en omega_k de la fonction de corrélation spatiale choisie
  34 : C SK         : sa contribution à l'estimateur
  35 : C FIK        : 'phi_k', phase aléatoire d'indice k 
  36 : C              (argument du coef. de Fourier)
  37 : C
  38 : C=======================================================================        
  39 : C                                                                       
  40 :       IMPLICIT INTEGER(I-N)
  41 :       IMPLICIT REAL*8(A-H,O-Z)
  42 : C                                                                       
  43 : -INC CCOPTIO
  44 : -INC SMCHPOI
  45 : -INC CCREEL
  46 : C     
  47 :       SEGMENT XLINE(NZET)
  48 :       SEGMENT SK(M)
  49 :       SEGMENT OMPRIK(M)
  50 :       SEGMENT FIK(M)
  51 : C                                                                       
  52 :       DEUPI=2.D0*XPI
  53 : C                                                                       
  54 :       M = INT (OMMAX / DOMEGA)
  55 : C
  56 :       SEGINI SK
  57 :       SEGINI OMPRIK
  58 :       SEGINI FIK
  59 : C
  60 :       DELDEL=DOMEGA/20.D0
  61 : C                                                                       
  62 :       NZET=XLINE(/1)
  63 : C                                                                       
  64 : C     Calcule les vecteurs d'ondes et les coefficients de fourier
  65 : C     (module et arguments) correspondant 
  66 : C                                                                       
  67 :       CSTANT = 0.25D0 
  68 :       DO 1 K=1,M
  68 :         CALL TDRAND(XRAN)
  69 :         FIK(K)=DEUPI*XRAN
  70 :         OMK=DOMEGA*(K-0.5D0)
  70 :         CALL TDRAND(XRAN)
  71 :         OMPRIK(K)=DELDEL*2.D0*(XRAN-0.5D0)+OMK
  72 : C
  73 : C...........................................................
  74 : C
  75 : C       La structure de corrélation apparaît ici, sous la forme des
  76 : C       coefficients de sa transformée de Fourier de la fonction de
  77 : C       corrélation 1D équivalente:
  78 : C
  79 : C       COVARIANCE EXPONENTIELLE 2D 
  80 : C
  81 :         SSK = CSTANT * OMK / (1.D0 + (OMK*OMK)) ** 1.5D0
  82 : C
  83 : C...........................................................
  84 : C                              
  85 :         SK(K) = SQRT(2.D0 * SSK * DOMEGA)
  86 :     1 CONTINUE
  87 : C                                                                       
  88 : C.....CALCULATE REALIZATION
  89 : C                                                                       
  90 :       DO 3 I=1,NZET
  91 :         ZET=ZETMIN+DELZET*FLOAT(I-1)
  92 :         SUM=0.D0
  93 :         DO 4 K=1,M
  94 :           ARG=OMPRIK(K)*ZET+FIK(K)
  95 :           SUM=SUM+SK(K)*COS(ARG)
  96 :     4   CONTINUE
  97 : C
  98 : C       comme on a intégré sur un demi-espace, on multiplie par 2
  99 :         XLINE(I)=2.D0*SUM
 100 :     3 CONTINUE
 101 : C
 102 :       SEGSUP SK
 103 :       SEGSUP OMPRIK
 104 :       SEGSUP FIK
 105 : C
 106 :       RETURN                                                            
 107 :       END                                                               
 108 : 
 109 :  
 110 :  
 111 :  
 112 :  

© Cast3M 2003 - All rights reserved.
Disclaimer