C BANT1D SOURCE CB215821 20/11/25 13:18:33 10792 SUBROUTINE BANT1D(DOMEGA,OMMAX,DELZET,ZETMIN,XLINE) C C----------------------------------------------------------------------- C C THIS SUBROUTINE GENERATES A CORRELATED RANDOM LINE PROCESS C USING THE METHODS OF RICE (1954); SHINOZUKA AND JAN (1972) C 1D CASE 1D CASE 1D CASE 1D CASE 1D CASE 1D CASE 1D CASE C C----------------------------------------------------------------------- C C--------------------------- C Paramètres Entrée/Sortie : C--------------------------- C C E/ DOMEGA : Pas de discrétisation des vecteurs d'onde (Non normalisé) C E/ OMMAX : Vecteur d'onde de coupure (adimensionné par lambda) C E/ DELZET : Longueur minimale de description des hétérogénéités C E/ ZETMIN : Abscisse curviligne minimale des projections des points C sur la ligne C C /S XLINE : Segment contenant les valeurs de la simulation sur la C ligne C C-------------------------- C Variables internes : C-------------------------- C C M : Nombre de vecteurs d'onde par bande C OMK : 'omega_k', vecteur d'onde d'indice k C OMPRIK : 'omega_k' + petite variation aléatoire C SSK : 'ss_k', 2 fois le module d'indice k du coef. de Fourier C en omega_k de la fonction de corrélation spatiale choisie C SK : sa contribution à l'estimateur C FIK : 'phi_k', phase aléatoire d'indice k C (argument du coef. de Fourier) C C======================================================================= C IMPLICIT INTEGER(I-N) IMPLICIT REAL*8(A-H,O-Z) C -INC PPARAM -INC CCOPTIO -INC SMCHPOI -INC CCREEL C SEGMENT XLINE(NZET) SEGMENT SK(M) SEGMENT OMPRIK(M) SEGMENT FIK(M) C DEUPI=2.D0*XPI C M = INT (OMMAX / DOMEGA) C SEGINI SK SEGINI OMPRIK SEGINI FIK C DELDEL=DOMEGA/20.D0 C NZET=XLINE(/1) C C Calcule les vecteurs d'ondes et les coefficients de fourier C (module et arguments) correspondant C CSTANT = .5 / XPI DO 1 K=1,M CALL TDRAND(XRAN) FIK(K)=DEUPI*XRAN OMK=DOMEGA*(K-0.5D0) CALL TDRAND(XRAN) OMPRIK(K)=DELDEL*2.D0*(XRAN-0.5D0)+OMK C C........................................................... C C La structure de corrélation apparaît ici, sous la forme des C coefficients de sa transformée de Fourier de la fonction de C corrélation 1D équivalente : C C COVARIANCE EXPONENTIELLE 1D C SSK = CSTANT / (1.D0 + (OMK*OMK)) C C........................................................... C SK(K) = SQRT(2.D0 * SSK * DOMEGA) 1 CONTINUE C C.....CALCULATE REALIZATION C DO 3 I=1,NZET ZET = ZETMIN + DELZET * FLOAT(I-1) SUM = 0.D0 DO 4 K=1,M ARG = OMPRIK(K) * ZET + FIK(K) SUM = SUM + SK(K) * COS(ARG) 4 CONTINUE C C comme on a intégré sur un demi-espace, on multiplie par 2 XLINE(I)=2.D0*SUM 3 CONTINUE C SEGSUP SK SEGSUP OMPRIK SEGSUP FIK C RETURN END